2014-02-27 137 views
1


比方說,我有類似Twitter的網站填充消息。有一個功能,您可以添加評論消息。AngularJS - 多種形式 - 一個ng模型?

所以,我遍歷每個消息並顯示評論表單:

<div class="" ng-repeat="msg in messages"> 
    <span>message: {{msg.message}}</span> 
    <span>date {{msg.date}}</span> 
    <form ng-submit=""> 
     <input type="text" ng-model="commentForm.comment"> 
     <button type="submit" value="send"> 
    </form> 
</div> 

的問題是,當我下一個消息類型註釋它顯示了所有的輸入,這不是我想要的行爲。

  • 禁用與禁用=「true」其他輸入字段沒有幫助。

下面是代碼:plnkr

回答

4

根據您提供的代碼,所有的文字輸入綁定到相同的NG-模型變量。所以,當其中一個值發生變化時,它們會被更新。將註釋存儲爲原始對象的一部分可能會更好。

在控制器:

$scope.messages = [ 
    {'message': 'here goes some message', 
     'date': '1-1-2014', 
     'comment':'' 
    }, 
    {'message': 'here goes another message', 
     'date': '2-2-2014', 
     'comment':'' 
    } 
]; 

而在HTML:

<div class="" ng-repeat="msg in messages"> 
     <input type="text" ng-model="msg.comment"> 
</div> 

http://plnkr.co/edit/DeUyHXsXJLUESXTAnwGY?p=preview

1

您正在使用的的script.js聲明的對象commentForm,這是獨一無二的。

<span>Comments:</span> 
<form ng-submit=""> 
    <input type="text" ng-model="msg.commentForm"> 
    <button type="submit">send</button 
</form> 
<br> 

將在每個「msg」對象中爲您創建一個字段commentForm。