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"。
このような文字列以外の属性を取得する方法はありますか? これを達成するための最良の方法は何ですか?