我正在尝试对 ng init 进行数学运算
<div "dt in data">
<input type="text" ng-model="dt.in" ng-init="'aaa' + $index + 1">
</div>
以 aaa1 格式输出
但它不起作用。
我正在尝试对 ng init 进行数学运算
<div "dt in data">
<input type="text" ng-model="dt.in" ng-init="'aaa' + $index + 1">
</div>
以 aaa1 格式输出
但它不起作用。
正如文档所述,
ngInit 唯一合适的用途是为 ngRepeat 的特殊属性设置别名,如下面的演示所示。除了这种情况,您应该使用控制器而不是 ngInit 来初始化作用域上的值。
这不是你在做什么。ngInit 实际上做的是初始化一个在 ngRepeat 范围内可用的变量。您甚至没有创建变量(我的意思是,放置类似的东西myVar = someValue
),您只是在执行计算。
所以,我认为你应该放弃 ngInit 而是在你的 $scope 中创建一个函数,比如:
$scope.myFunc = function(index) {
return 'aaa' + (index + 1);
}
并像这样使用它:
<input type="text" ng-bind="myFunc($index)">
编辑:我实际上不确定这ng-bind
是否正是您想要的,特别是考虑到您将它与<input>
. 我只是用ng-bind
了一个例子,你应该使用你认为更合适的任何东西。
如果要在文本框中查看计算值,则需要更改为
ng-init="dt.in='aaa' + $index + 1"
var app = angular.module('app', []);
app.controller('fCtrl', function($scope) {
$scope.data = [
{ in : 1
}, { in : 2
}
]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="fCtrl">
<div ng-repeat="dt in data">
<input type="text" ng-model="dt.in" ng-init="dt.in='aaa' + $index + 1">
</div>
</div>
</div>