2016-11-15 81 views
0

下面是HTML,将显示表单时用户点击“编辑”angularjs如何将一个值赋给一个动态文本

<div ng-repeat="item in items"> 
    <input type="text" placeholder="{{item.questionPlaceholder}}" ng-model="form.g1tags[item.tags_index]" required> 
    <input ng-class="{'blockInput': !item.inlineChecked}" type="text" placeholder="enter text..." ng-model="form.g1tags_desc[item.tags_index]" required> 
    <input type="hidden" name="Group1" value="1"> 
</div>       
<button class="addfields" ng-click="addG1Choice()">Add fields</button> 

在我的角度控制器的全功能

$scope.edit = function(id){ 
    dataFactory.httpRequest('items/'+id+'/edit').then(function(data) { 
     //console.log(data); 
     $scope.form = data; 


     for(var key in data) { 
      var tags = data[key]; 
     } 
     for(var i = 0; i < tags.length; i++){ 
      tag = tags[i]; 
      //console.log(tag['name']); 
      $scope.tags_index += 1; 
        $scope.items.push({ 
         tags_index: $scope.tags_index, 
         tag_name: tag['name'], 
         inlineChecked: false, 
         question: "", 
         questionPlaceholder: tag['name'], 
         text: "" 
        }); 
      $scope.form.g1tags = 'aaaaaaaaaaaaaaaaaaaaaaaaab'; 
      console.log ($scope.form.g1tags); 

     } 

    }); 
    } 

textfield只显示'aaaaaaaaaaaaaaaaaaaaaaaaab'的第一个字符,任何人都知道是什么问题?

回答

1

它,因为你只访问NG重复内的第一要素,从NG-模型

<input type="text" placeholder="{{item.questionPlaceholder}}" ng-model="form.g1tags" required> 
+0

但如果我删除item.tags_index,添加操作将不能正常工作,因为文本框作为数组动态传递给后端。 – hkguile

+0

然后你做错了什么 – Sajeetharan

+0

添加表格可以使用ng-model =“form.g1tags [item.tags_index]” – hkguile

0

删除[item.tags_index]在你的控制器,你要指定g1tags一个字符串值:

$scope.form.g1tags = 'aaaaaaaaaaaaaaaaaaaaaaaaab'; 

而在你看来,你访问它,仿佛它是一个集合

form.g1tags[item.tags_index] 

这不会,如果你需要g1tags容纳多个值,你应该建立一个数组来work--:

$scope.form.g1tags = []; 

//And then in your for loop: 
$scope.form.g1tags.push('aaaaaaaaaaaaaaaaaaaaaaaaab'); 
+0

我试过\t \t for(var i = 0; i hkguile

相关问题