簡體   English   中英

在AngularJS中為ng-model創建動態名稱

[英]Create dynamic names for ng-model in AngularJS

問題-

ng-model不是動態創建的。 我的輸入框是動態創建的,我正在嘗試創建ng-model動態的,例如test[1]test[2]等,但是當我test[shiftnumber]表單時,我得到的只是-所有輸入元素的test[shiftnumber]

HTML代碼 -

<body ng-controller="myCtrl">
    <select id="shiftnumbers"
            ng-model="event.shiftnumber"
            ng-change="addShiftNumber(event.shiftnumber)"
            ng-options="timeslot.value as timeslot.name for timeslot in shiftnumbers"
            ng-init="event.shiftnumber = shiftnumbers[0].value"
            class="btn">
    </select>
    <div ng-repeat="shiftnumber in selectedShiftnumbers">
      <input type="text" name="test{{shiftnumber}}" ng-model="test[shiftnumber]" /> {{shiftnumber + 1}}
    </div>
</body>

腳本代碼-

var myApp = angular.module("myApp", []);

myApp.controller("myCtrl", function($scope){

    $scope.shiftnumbers = [];
    for(var i=0; i< 23; i++) {
        $scope.shiftnumbers.push({name: i, value: i});
    }

    $scope.addShiftNumber = function(num){
      $scope.selectedShiftnumbers = [];
      for(var i=0; i< num; i++) {
        $scope.selectedShiftnumbers.push(i);
      }
    }
});

PLNKR- http: //plnkr.co/edit/PL9sVAKn5UsZECPsOvnk?p=preview

因為您尚未定義$scope.test[0]$scope.test[1] (您正在使用ng-model="test[shiftnumber]" ,所以應該有$scope.test[shiftnumber] ) 。

嘗試

$scope.addShiftNumber = function(num){
  $scope.test = [];
  $scope.selectedShiftnumbers = [];
  for(var i=0; i< num; i++) {
    $scope.selectedShiftnumbers.push(i);
    $scope.test.push('');
  }
}

矮人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM