gpt4 book ai didi

angularjs - $observe 在 AngularJS 中不起作用

转载 作者:行者123 更新时间:2023-12-02 06:17:36 29 4
gpt4 key购买 nike

无法让 $observe 触发任何变化。

.directive('watchContent', function () {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
console.log(attrs.class)

attrs.$observe("class", function(value){
console.log('change !');
if(value.indexOf("open") > -1){
alert("yes")
}
})
scope.$watch(function() {return attrs.class; }, function(newValue, oldValue, scope){
console.log('change !');
console.log(newValue)
console.log(oldValue)
console.log(scope)
console.log(attrs.class)
// debugger;
if (elem.hasClass('open')) {
console.log('YEs')
} else {
console.log('no')
}
});
}
};
})

这是我试图触发的地方:

  <li class="dropdown dropdownChange" id="contentMenu" watch-content>
<a class="dropdown-toggle" >
Content options
</a>
<ul class="dropdown-menu" >
<li ng-repeat="option in options">
<a><input type="checkbox" checklist-model="contentChoices" checklist-value="option.id" ng-click="$event.stopPropagation()" ng-change="changed()"> {{option.slug}} </a>
</li>
</ul>
</li>

最佳答案

我认为这是因为您拥有的类值未被插值。

$observe 仅适用于插值属性,例如 class="{{whatever}}"。

因为你的类不是插值的,所以你需要使用 scope.$watch(...) 来代替。

关于angularjs - $observe 在 AngularJS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23318159/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com