0

Я построил временную шкалу, используя угловые js. Timeline показывает запись от пользователей и других людей может добавить комментарий. Для этого я предоставил текстовое поле. Настройка проста. Я использую ng-repeat, чтобы показывать сообщение о временной шкале (которое всегда может быть больше одного), и, поскольку пользователи могут комментировать каждый пост, вместе с ним добавляется текстовое поле (например, временная шкала facebook).angularjs- проблема с привязкой данных в textareas

Итак, когда я повторяю содержимое, textarea также повторяется. Это именно то, что мне нужно.

Но привязка данных завершена. Поэтому, когда я печатаю на текстовом поле, все текстовое поле отражает его. Это похоже на тип текстового поля комментариев, вся текстовая область будет отображаться набираемым.

Как этого избежать? Я новичок в angularJS

Это мой пример кода:

 <li class="media post" ng-repeat="post in vm.posts"> 
      <div class="post-main"> 
       this is a static post 
      </div> 

       <div class="media comment-textarea"> 

        <div class="media-body"> 
         <textarea class="form-control" placeholder="Type here..." rows="1" ng-model="vm.comment.content"></textarea> 
         <a class="btn btn-primary " ng-click="vm.addComment(post,vm.currentComment.content)"> 
          <i class="fa fa-paper-plane"></i> 
         </a>  
        </div> 
       </div> 
      </div> 
     </li> 

ответ

1

Потому что вы используете тот же model значение для всех сроков, вместо этого я хотел бы предложить вам поставить comment модель внутри только после объекта. Убедитесь, что вы добавили свойство комментария к каждой записи post.

<li class="media post" ng-repeat="post in vm.posts"> 
    <div class="post-main"> 
     this is a static post 
    </div> 

     <div class="media comment-textarea"> 

      <div class="media-body"> 
       <textarea class="form-control" placeholder="Type here..." rows="1" 
        ng-model="post.comment.content"></textarea> 
       <a class="btn btn-primary " ng-click="vm.addComment(post,post.comment.content)"> 
        <i class="fa fa-paper-plane"></i> 
       </a>  
      </div> 
     </div> 
    </div> 
</li> 
+0

Хорошо, позвольте мне попробовать. @Pankaj Parkar –

1

вы добавляете текстовое поле с нг-повторить и почему же модель vm.comment.content получает прилагается ко всем, вот почему вы видите вопрос о записи в одном textarea, и он отображается на всех.

вы должны иметь комментарий свойства в каждом объекте массива vm.posts и вы можете привязать его к текстовой области с нг-моделью = «post.comment»

в контроллер

$scope.posts = [{comment:""}]; 

вид сверху.

<li class="media post" ng-repeat="post in vm.posts"> 
     <div class="post-main"> 
      this is a static post 
     </div> 

      <div class="media comment-textarea"> 

       <div class="media-body"> 
        <textarea class="form-control" placeholder="Type here..." rows="1" ng-model="vm.comment"></textarea> 
        <a class="btn btn-primary " ng-click="vm.addComment(post)"> 
         <i class="fa fa-paper-plane"></i> 
        </a>  
       </div> 
      </div> 
     </div> 
    </li> 
+0

Как этого избежать? Я также должен сохранить эти комментарии в базе данных. @Deep –

+0

@SajeevC: я предложил решение выше, используя это, вы сможете сохранить все данные с помощью массива сообщений – Deep

+0

Спасибо, Глубоко! @Deep –

Смежные вопросы