我有一个自定义的角度指令,它以图形方式表示我的 web 应用程序中的“活动”。我这样使用它:
<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
为真时,则active
保存字符串值"true"
(而不是布尔值true
),否则"false"
(而不是false
)。
这意味着虽然它在概念上是一个布尔值,但我必须将它视为一个字符串。例如,我想ng-class="{activityActive: active}"
改写ng-class="{activityActive: active == 'true'}"
. 现在,如果我忘记了额外的部分,这总是评估为真,因为两者"false"
都是"true"
真实的。
有什么办法让我获得这样的非字符串属性?实现这一目标的最佳方法是什么?