Web アプリケーションの「アクティビティ」をグラフィカルに表すカスタム angular ディレクティブがあります。私はこのように使用します:
<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 と評価されます。両方とも true"false"
です"true"
。
このような文字列以外の属性を取得する方法はありますか? これを達成するための最良の方法は何ですか?