-1
Посмотрите на этот код @plnkr.co. В link
функция directive
, controller.$render()
была вызвана, которая отлично работала. Проблема в том, что когда я переопределяю функцию controller.$render
, она не запускается. console.log('overridden $render function called');
не отображается в консоли.
script.js
является:
var app = angular.module('myApp', []);
app.directive('test', function() {
return {
require: '?ngModel',
link: function ($scope, $element, $attr, controller) {
if (!controller) {
console.log("controller of ngModel not found");
return;
} else {
console.log("controller of ngModel found");
controller.$setViewValue('qwerty');
//controller.$render();
controller.$render = function(){
console.log('overridden $render function called');
}
}
}
};
});
index.html
является:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div>TODO write content </div>
<input test type="text" ng-model="name" >
<h1>name: {{name}}</h1>
</body>
</html>
Вам нужно вызвать 'контроллер $ Render() ; 'и, конечно, после' controller. $ render = function() {' – PSL