Angularjs 将文本框添加到角度表单

Angularjs 将文本框添加到角度表单,angularjs,forms,dynamic,angularjs-scope,angularjs-ng-repeat,Angularjs,Forms,Dynamic,Angularjs Scope,Angularjs Ng Repeat,我正在尝试动态地将文本框添加到角度窗体中。我使用的是ng repeat,只需将一个空字符串推到数组中,就可以轻松地添加文本框。它将添加另一个文本框,问题是ng模型没有同步数据,添加文本时它仍然是一个空字符串 从初始数组同步创建的文本框很好,只是新添加的文本框不起作用 我一直在四处寻找,我看到的一个建议是在使用ng模型时始终使用“.”,但这对我不起作用 <div ng-repeat="text in image.text track by $index"> <

我正在尝试动态地将文本框添加到角度窗体中。我使用的是ng repeat,只需将一个空字符串推到数组中,就可以轻松地添加文本框。它将添加另一个文本框,问题是ng模型没有同步数据,添加文本时它仍然是一个空字符串

从初始数组同步创建的文本框很好,只是新添加的文本框不起作用

我一直在四处寻找,我看到的一个建议是在使用ng模型时始终使用“.”,但这对我不起作用

    <div ng-repeat="text in image.text track by $index">

      <md-input-container class="md-block" novalidate>
      <label>Text {{$index + 1}}:</label>

        <textarea md-maxlength="2500" md-midlength="1" required md-no-asterisk name="text"
        placeholder="{{text}}"
        ng-model="text"></textarea> 
      </md-input-container>
    </div>

})()

将控制器中的模型变量初始化为空对象

然后在文本中输入ng model=“model[$index]”

angular
    .module('app.article')
    .controller('ArticleEditController', ArticleEditController);

ArticleEditController.$inject= ['articleEditDataService', '$routeParams', '$log'];   

function ArticleEditController(articleEditDataService, $routeParams, $log) {
    var vm = this;

    var site = $routeParams.site;
    var articleName = $routeParams.article;
    var articleRevision_id = $routeParams.revision_id;

    vm.data = {};
    vm.addNewText = addNewText;
    vm.removeText = removeText;
    vm.saveArticle = saveArticle;
    vm.numMessage = 1;

    activate();

    function activate(){
        getArticle();
    }

    function getArticle(){
        var data = articleEditDataService.getArticle(site, articleName, articleRevision_id);
        data.then(function successResponse(res) {
            vm.data = res.results.data;
        }, function errorResponse (res) {
            console.log(res);
        });
    }

    function saveArticle(){
        var article = articleEditDataService.postArticle(vm.data, site, articleName, articleRevision_id);
        console.log(vm.data);
        article
            .then(updateArticleSuccess)
            .catch(updateArticleError);
    }

    function updateArticleSuccess(message){
        $log.info(message);
    }

    function updateArticleError(errorMessage){
        $log.error(errorMessage);
    }


    function addNewText (index, key) {
      vm.data.content.image_sets[key].text.push("");
    }

    function removeText (index, key) {
      if(vm.data.content.image_sets[key].text.length > 1){
        vm.data.content.image_sets[key].text.pop();
      }
    }


};