我有一个自定义的角度指令,该指令以图形方式表示Webapp中的“活动”。我这样使用它:
<activity-box ng-repeat="act in activities"
model="act" active="{{currentActivity == act}}" />
我的指令具有隔离范围,并宣布model
与active
这样的:
appDirectives.directive('activityBox', function() {
return {
template: '<div ng-class="{activityActive: active == \'true\'}">{{model.name}}</div>',
restrict: 'E',
replace: true,
scope: {
model: '=',
active: '@'
},
link: ...
};
});
我不必担心该model
属性,但是我的active
属性始终被视为字符串。当currentActivity == act
为true时,则active
保存字符串值"true"
(而不是boolean true
),否则,则保存"false"
(而不是false
)。
这意味着尽管从概念上讲它是一个布尔值,但我必须将其视为字符串。举例来说,我想写ng-class="{activityActive: active}"
代替ng-class="{activityActive: active == 'true'}"
。现在,如果我忘了多出的部分,这始终为true,因为这两个"false"
和"true"
是truthy。
有什么办法让我获得像这样的非字符串属性吗?实现此目标的最佳方法是什么?
关于什么?
<activity-box ng-repeat="act in activities"
model="act" active="currentActivity == act" />
scope: {
model: '=',
active: '='
},
刚刚尝试过-它有效。并且具有绑定,因此如果'currentActivity'或'act'会发生变化,那么内部指令中的'active'的值也会发生变化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句