Angular在长度为0时在Array上添加新项

时间:2015-01-28 07:24:28

标签: angularjs

如何使用angular在空数组中添加新项?这就是我所拥有的

   <body ng-controller="MainCtrl" ng-init="arr.lenght == 0 || arr[0] = ''">
        <div ng-repeat="d in arr track by $index">
          <input ng-model="arr[$index]" />
        </div>
      </body>

3 个答案:

答案 0 :(得分:0)

如果你在控制器中这样做会更好。

HTML

<body ng-controller="MainCtrl" ng-init="mainControllerInit()">
    <div ng-repeat="d in arr track by $index">
      <input ng-model="arr[$index]" />
    </div>
</body>

在控制器

$scope.arr = [];
$scope.mainControllerInit = function(){
   if(!$scope.arr.length){
      $scope.arr[0] = '';
   }
}

答案 1 :(得分:0)

你走了:

<body ng-controller="MainCtrl" ng-init="(!arr || arr.lenght == 0) ? arr = [''] : ''">
    <div ng-repeat="d in arr track by $index">
       <input ng-model="arr[$index]" />
    </div>
 </body>

你也可以在你的MainCtrl中做得更清洁。

答案 2 :(得分:0)

您尚未正确初始化阵列。你也在ng-init中进行比较。 ng-init用于初始化。

试试这个,

<强> HTML

<div ng-controller="MyCtrl" ng-init="arr=[]; arr.length=0">
  <input ng-model="arr[0]" />
  <p> {{arr[0]}} </p>
</div>

<强> JS

var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
}

请参阅fiddle