我的控制器中有一个变量用作标志。我在指令范围内使用此变量。我从指令调用我的控制器函数(使用此函数传递指令范围)并尝试更新标志变量,变量在控制器中更新(在console.log()中获得更新值)但我没有获得指令内的更新值。
答案 0 :(得分:0)
需要您的代码知道您的指令和控制器之间的关系。 Here是我的简单例子。 $ scope.test可以更新。
JavaScript的:
angular.module('myApp',[]);
angular.module('myApp').controller('myCtrl',['$scope', function($scope){
$scope.test='msg from myCtrl';
$scope.onClick=function(){
$scope.test='msg from function in myCtrl';
};
}]);
angular.module('myApp').directive('myDirective', function(){
return{
restrict:'E',
template:'<div>Hello! {{test}}</div><button class="btn btn-default" type="button" ng-click=onClick()>Change value</button>',
controller:['$scope','$element',function($scope, $element){
$scope.test='msg from myDirective controller.'
}],
link: function(scope, element, attrs){
},
};
});
HTML:
<body ng-app='myApp'>
<div ng-controller='myCtrl'>
{{test}}<br/>
<my-directive />
</div>
</body>