Javascript 当父';s范围变量更改? 指令: ... 角度.module('mymodule')。指令('mydirective'[ 函数(){ 返回{ 范围:{ 显示:'=' }, ... }; }]); 起源: controller.js: this.show=false//initially 函数changeVisibility(){ this.show=true;//如何告知指令此更改? }
“show”是一个范围变量,最初为false,但后来变为true。但是,发生这种情况时,指令的范围变量“show”不会得到更新。当父级的show变量更改时,如何更新指令的show变量?我需要一个$scope.$watch还是什么?Javascript 当父';s范围变量更改? 指令: ... 角度.module('mymodule')。指令('mydirective'[ 函数(){ 返回{ 范围:{ 显示:'=' }, ... }; }]); 起源: controller.js: this.show=false//initially 函数changeVisibility(){ this.show=true;//如何告知指令此更改? },javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,“show”是一个范围变量,最初为false,但后来变为true。但是,发生这种情况时,指令的范围变量“show”不会得到更新。当父级的show变量更改时,如何更新指令的show变量?我需要一个$scope.$watch还是什么?ng show需要一个表达式而不是插值 试一试 给$scope.$apply()一次机会@spoonscen$scope.$apply()不是一个“包治百病”的方法,除非在角度上下文之外更改范围,否则不应使用它,这显然不是该部分实际工作的情况。我有一个控制器,这就是为什
ng show
需要一个表达式而不是插值
试一试
给
$scope.$apply()
一次机会@spoonscen$scope.$apply()
不是一个“包治百病”的方法,除非在角度上下文之外更改范围,否则不应使用它,这显然不是该部分实际工作的情况。我有一个控制器,这就是为什么我使用controller.show。将更新问题。哦…还请注意,不要认为您可以在ng repeat
元素上使用隔离范围指令。你的编辑不是一个简单的问题。创建一个复制问题的简单Plunk
Directive:
<div ng-show="{{ show }}">
...
</div>
angular.module('mymodule').directive('mydirective', [
function () {
return {
scope: {
show: '='
},
...
};
}]);
Parent:
<div mydirective show="show" ng-repeat="item in items">
</div>
controller.js:
this.show = false //intially
function changeVisibility(){
this.show = true; //how to tell the directive about this change?
}
ng-show="show"