Javascript ngClass何时评估功能/如何在自定义指令中模拟此功能
我希望有人能提供一些我现在非常缺乏的角度洞察力 ngClass允许您根据某些函数添加/删除类。例如,如果我写:Javascript ngClass何时评估功能/如何在自定义指令中模拟此功能,javascript,angularjs,angularjs-directive,ng-class,Javascript,Angularjs,Angularjs Directive,Ng Class,我希望有人能提供一些我现在非常缺乏的角度洞察力 ngClass允许您根据某些函数添加/删除类。例如,如果我写: <div ng-class="{'some-class' : myFunction()}"> </div> 显然这是行不通的。只有当指令被链接时,它才会运行。那么,如何查看myFunction()的更改呢?我将使用$watch(),它在每个$digest循环中计算初始参数,并在初始加载期间调用侦听器(第二个参数)一次,随后,每次初始参数的计算返回与前一个不同的
<div ng-class="{'some-class' : myFunction()}"> </div>
显然这是行不通的。只有当指令被链接时,它才会运行。那么,如何查看myFunction()的更改呢?我将使用$watch()
,它在每个$digest循环中计算初始参数,并在初始加载期间调用侦听器(第二个参数)一次,随后,每次初始参数的计算返回与前一个不同的值
看
基于您提供的psuedo代码(实际代码对于测试目的来说会更好:-),下面是一个您应该做的示例:
app.directive('myDirective', function () {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
scope.$watch(function() {
// .. this is your "myFunction()"
return result;
}, function(newResult) {
if (newResult) {
elem.addClass('some-class');
} else {
elem.removeClass('some-class');
}
});
}
}
}
另外,请确保在“A”值上有结束引号。为什么不在语句=
myFunction()中使用ng呢?
我想我不太明白你的意思,你能详细说明一下吗?@Sanborn你能解决这个问题吗?
app.directive('myDirective', function () {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
scope.$watch(function() {
// .. this is your "myFunction()"
return result;
}, function(newResult) {
if (newResult) {
elem.addClass('some-class');
} else {
elem.removeClass('some-class');
}
});
}
}
}