2014-08-27 4 views
-1

문제 NG 모델에 대한 동적 이름 만들기 -AngularJS와의

ng-model 동적으로 생성되지 않습니다. 내 입력 상자가 동적으로 만들고있어 test[1], test[2] 등등과 같은 동적 인 ng-model을 만들려고 노력하고 있습니다.하지만 방화범이 끌리는 양식에서는 모든 입력 요소에 대해서만 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> 

SCRIPT 코드 -

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

답변

3

당신이 $scope.test[1] (당신이 사용하고, $scope.test[0] 정의하지 않기 때문에 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(''); 
    } 
} 

plunker

관련 문제