无法将参数发送到 ng-init
Unable to send parameters to ng-init
<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>
在上面的代码中,我想传递ng-model="rate"
,rate到函数Func。 ex: Func(rate);
这里的费率应该从ng-model
传递。
JS代码:
var val='';
$scope.Func = function fun(n){
if(n == 0){
val = val + '';
} else {
val = val+'a';
return fun(n-1);
} return val;
};
你需要
重写你的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" >
普伦克尔在这里
编辑:如果您的要求是不使用 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 在这里
由于您不能使用数组并且速率限制相当低,因此您无需创建函数,您可以使用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>
相关文章:
- ng init中的表达式无法使用ng repeat
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- AngularJS ng-init does not work
- ng init未按预期工作
- 在<选择>使用angular ng选项可能使用ng init
- ng init未进行初始化
- AngularJS:如何在间隔后执行 ng-init
- 在指令之后加载的角度ng-init函数
- ng init与razor表达式
- 错误:[ng:areq]参数'CompanyCtrl'不是函数,未定义
- Angular.js:13424错误:[ng:areq]参数'enfermerosController'
- 如何使用AngularJS在ng init中传递scope变量
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 在我的HTML中用ng-init初始化$scope变量时出现问题
- 如何在ng-init中使用$scope变量
- 触发特定路由的其他指令,如ng-init或事件,如stateChangeStart
- 如何使用angularjs在单个ng-init-directice中调用多个函数
- angularjs[ng:areq]参数'fn'不是函数,在控制台中获取字符串时出错
- 在AngularJS v1.4.8中,将匿名函数作为参数传递给ng-init中的函数
- 无法将参数发送到 ng-init