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?
}
«показать» - это переменная области видимости, которая изначально ошибочна, но позже превращается в истину. Тем не менее, переменная сферы действия «show» не обновляется, когда это происходит. Как обновить отображаемую переменную директивы при изменении переменной show родительской? Нужен ли мне $ scope? $ Watch или еще что-то?Как обновить директиву при изменении переменной области родителя?
податливость '$ объем. $ Применить()' выстрел! http://jimhoskins.com/2012/12/17/angularjs-and-apply.html – spoonscen
@spoonscen '$ scope. $ apply()' не является * "вылечить все" * и не должен использоваться, если только область изменена вне углового контекста, что явно не имеет места здесь – charlietfl