我有一个指令:
app.directive('hideButton', function () {
return {
restrict: "A",
scope: {
init: '='
},
replace : true,
link: function(scope, elem, attrs) {
if(scope.init) {
elem.css('display', 'none');
scope.init = false;
}
elem.on('click', function() {
elem.css('display', 'none');
});
}
}
});
这里,init
是控制器变量。
现在在指令中我设置了scope.init = false
,但更改没有反映到控制器中。
答案 0 :(得分:2)
这是AngularJS中的常见问题,因为这只是不直观的。
如果将基本类型绑定到指令(在这种情况下为init
的{{1}}),则绑定会丢失。尝试将其包装到对象中
boolean
在您的控制器中。
您的指令现在变为
{ value: true }
您的问题也在这里得到解答:https://stackoverflow.com/a/29265539/537738