Angularjs如何给动态文本域赋值

angularjs how to assign a value to a dynamic textfield

本文关键字:文本 赋值 动态 Angularjs      更新时间:2023-09-26

这是html,当用户点击"edit"时,表单将显示

<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);
        }
    });
  }

文本字段只显示' aaaaaaaaaaaaaaaaaaaaaaaaaaaaab '的第一个字符,有人知道是什么问题吗?

这是因为您只访问ng-repeat中的第一个元素,从ng-model中删除[item.tags_index]

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

在您的控制器中,您分配g1tags一个字符串值:

$scope.form.g1tags = 'aaaaaaaaaaaaaaaaaaaaaaaaab';

在你的视图中,你访问它就好像它是一个集合

form.g1tags[item.tags_index]

这是行不通的——如果你需要g1tags来保存多个值,你应该创建一个数组:

$scope.form.g1tags = [];
//And then in your for loop:
$scope.form.g1tags.push('aaaaaaaaaaaaaaaaaaaaaaaaab');