public function sendInfo(\Order $order){...}
在上面的代码中,我想将<input type="number" maxlength="1" max="5" min="0" placeholder="0" ng-model="rate">
<div ng-init="stars=Func(2)">
Rating: <span ng-repeat="x in stars track by $index">*</span>
</div>
, rate 传递给函数Func。
ng-model="rate"
此费率应从ex: Func(rate);
传递。
JS代码:
ng-model
答案 0 :(得分:0)
您需要重写Func
,以便它返回一个包含rate
元素数量的数组,以便您的ng-repeat
可以使用它来显示星星。
就像
一样简单 $scope.Func = function(n) {
return new Array(n);
}
现在,使用ng-init
将rate
初始化为两个:
<input type="number" maxlength="1" max="5" min="0" placeholder="0" ng-model="rate" ng-init="rate=2" >
Plnkr here
编辑:如果您的要求不是使用Array aka集合,则ng-repeat
不可用。不要害怕,我们可以返回一串星星。
将您的Func
更改为:
$scope.getStars = function(n) {
var stars = "";
for (var i = 0; i < n; i++) {
stars += "*";
}
return stars;
}
您的评分现在只显示字符串:
<div >
Rating: {{getStars(rate)}}
</div>
新Plnkr here
答案 1 :(得分:0)
由于您无法使用数组并且速率限制非常低,因此您无需创建函数,并且可以使用ngSwitch
来显示/隐藏适当的速率,如下所示:
(function() {
'use strict';
angular.module('app', [])
.controller('mainCtrl', function($scope) {
$scope.rate = 2;
})
})();
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl">
<input type="number" maxlength="1" max="5" min="0" placeholder="0" ng-model="rate">
<div ng-switch="rate">
Rating:
<span ng-switch-when="1">*</span>
<span ng-switch-when="2">**</span>
<span ng-switch-when="3">***</span>
<span ng-switch-when="4">****</span>
<span ng-switch-when="5">*****</span>
</div>
</body>
</html>