我有一个自定义的角度指令,它以图形方式表示我的 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"真实的。
有什么办法让我获得这样的非字符串属性?实现这一目标的最佳方法是什么?