Angular-UI を使用して評価システムを作成しました。表示される星の数は、max という変数から取得されます。ng-model を使用してこの変数を入力内に表示することはできますが、一度変更すると星の数は変わりません。
このPlunkerで私が何を意味するかがわかります。
関連するjsは次のとおりです。
.directive('myRating', function() {
return {
restrict: 'E',
template: '<div> \
<div class="row rating" ng-controller="RatingDemoCtrl"> \
<rating value="rate" max="max" readonly="isReadonly" state-on="\'glyphicon-star rated\'" state-off="\'glyphicon-star\'"></rating> <a class="glyphicon glyphicon-pencil" ng-show="editMode" ng-click="editStars = !editStars"></a>\
<input ng-if="editStars" type="text" class="form-control" ng-model="max" /> \
</div> \
</div>',
replace: true,
};
});
var RatingDemoCtrl = function ($scope) {
$scope.rate = 0;
$scope.max = 10;
$scope.isReadonly = false;
$scope.hoveringOver = function(value) {
$scope.overStar = value;
$scope.percent = 100 * (value / $scope.max);
};
};
はng-model
毎回最大値を表示するため正しく機能していますが、リアルタイムで変更することはありません。
何か案は?