0

angularjsで星の評価にjquery rateプラグインを使用しようとしています。次のようなカスタム ディレクティブを作成しました。

app.directive("ngStars", function() {
        return {
            restrict: 'A',
            link: function(scope, elem, attrs) {
                $(elem).raty({ 
                   'path': base_url+'images',
                    score:  attrs.score,
                    readOnly: true,
                    hints: ['سىء جدا', 'سىء', 'عادى', 'جديد', 'ممتاز'],
                });
            }
        }
    });

そして私のhtmlは次のとおりです

<div ng-repeat="place in places">
    <div ng-stars class="star" score={{place.rate}}></div>
</div>

score属性値を として事前定義した場合、プラグインは正常にscore="5"動作しscore="{{place.rate}}"ます。

どうすればこの問題を解決できますか?

4

2 に答える 2

0

テンプレートディレクティブを提供されるスコープ値にリンクする必要があります

コントローラーで $scope.rating オプションを使用して評価を変更できる小さなデモを作成しました ここ

ワーキングデモ

template: '<ul class="rating">' +
              '<li ng-repeat="star in stars" ng-class="star">' +
                '\u2605' +
              '</li>' +
            '</ul>',
  scope: {
    ratingValue: '=',
    max: '='
  },
  link: function (scope, elem, attrs) {
    scope.stars = [];
    for (var i = 0; i < scope.max; i++) {
      scope.stars.push({filled: i < scope.ratingValue});
    }
  }

詳細については、ここに素晴らしいチュートリアルがあります

于 2013-10-16T08:49:16.563 に答える