ng初始化的数学运算

Mathematical operations on ng init

本文关键字:运算 初始化 ng      更新时间:2023-09-26

我正在尝试对ng初始化进行数学运算

    <div "dt in data">
     <input type="text" ng-model="dt.in" ng-init="'aaa' + $index + 1">
    </div>

以aaa1 格式输出

但它不起作用。

如文档所述,

ngInit的唯一适当用途是对特殊属性进行混叠如下面的演示所示。除了这个案子,你应该使用控制器而不是ngInit来初始化作用域上的值。

这不是你要做的。ngInit实际所做的是init一个在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>