我使用 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
因为它每次都会显示 max 的值,但不会实时修改它。
有任何想法吗?