【问题标题】:Unbind ng-models inside ng-repeats在 ng-repeat 中取消绑定 ngmodel
【发布时间】:2016-08-18 05:00:07
【问题描述】:

我有以下问题,我使用 ng-repeat 生成了几个表单, 我使用 ng-model 来捕获 textarea 值,它工作得很好,但是当我尝试在 ng-repeat 生成的表单内的 textarea 元素上写一些东西时,文本同时在所有 textarea 元素中被复制。

有什么方法可以解除那些 ng-models 的绑定吗?

<div ng-repeat="PostList in PostList">
  <form id="PostFormComments" role="form">
      <div class="row input-field">
        <textarea data-ng-model="data.newComment" placeholder="write  something?...." type=text></textarea>
       </div>
       <a name="action" ng-disabled="!data.newComment" data-ng-click="addCommentPost();" ng-class="clear" class="secondary-content btn-floating waves-effect waves-light  light-blue darken-2"></a>
  </form>
  </div>

【问题讨论】:

    标签: javascript angularjs firebase-realtime-database


    【解决方案1】:

    您可以做的是使用$index,它为您提供当前ng-repeat 的索引并创建一个对象并通过它访问它。

    所以你会这样做:$scope.data = {}

    然后你会得到如下形式:

    <div ng-repeat="PostList in PostList">
      <form id="PostFormComments" role="form">
          <div class="row input-field">
            <textarea data-ng-model="data[$index].newComment" placeholder="write  something?...." type=text></textarea>
           </div>
           <a name="action" ng-disabled="!data[$index].newComment" data-ng-click="addCommentPost();" ng-class="clear" class="secondary-content btn-floating waves-effect waves-light  light-blue darken-2"></a>
      </form>
      </div>
    

    您会看到不同的 textarea ng-models 由其 $index 管理。

    【讨论】:

    • 就是这样!谢谢你! data-ng-click="addCommentPost($index);" JS:$scope.data = {}; $scope.addCommentPost = function(index) { var comment = $scope.data[index].newComment;控制台.log(评论); }
    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多