私は、星座をクリックして1から5までを評価できる星で評価するためのカスタムディレクティブを書いた問題が残っています。これを達成するのに成功した。angularjs、カスタムディレクティブの複数の属性に値を割り当てることができません
<span starrating class="star-rating" rating="ratedValue" ></span>
しかし、私は、「評価」と呼ばれる孤立スコープ変数を持つカスタマーレビューを表示するには、同じディレクティブを使用しています、これはあまりにもうまく動作します。
<span starrating class="star-rating" readOnlyFlag="true" rating="reviewItem.rating" ></span>
しかし、今回はユーザーがクリックして評価を変更しないようにします。したがって、私は "readOnlyFlag"と呼ばれるディレクティブの分離されたスコープ内の別の変数を宣言しています。しかし、私は属性としてreadOnlyFlagの値をディレクティブに代入します。リンク関数の値を取得できません。
ディレクティブコードは以下の通りです:
angular.module("pageDirectives",[]).directive("starrating", function(){
return {
restrict : 'A',
template :'<ul class="list-inline">'
+ ' <li ng-repeat="star in stars" ng-class="{filled: $index<=selectedIndex, filled:$index<rating}" ng-click="toggleIndex($index)">'
+ ' <i class="glyphicon glyphicon-star fa-2x"></i>'
+ ' </li>'
+ '</ul>',
scope : {
rating : '=',
readOnlyFlag : '=',
},
link: function (scope) {
scope.stars=[1,2,3,4,5];
scope.toggleIndex= function(index){
if(!scope.readonlyFlag){
scope.selectedIndex=index;
scope.rating=index+1;
}
}
}
};
});