这是我的.html:
<ul class="messages list-unstyled" ng-repeat="newMessage in messages">
<li>
<p>
<span class="username">{{newMessage.username}}</span><br />
</p>
<p>
<span> {{newMessage.message}}</span>
</p>
<p class="no-pad-bottom date-posted">Send {{ newMessage.date }} <span /></p>
<div class="comments">
<ul class="list-unstyled" ng-repeat="newComment in comments">
<li>
<p>
<span class="commentor"> {{newComment.username}}</span>
<span> {{newComment.message}}</span>
</p>
<p class="no-pad-bottom date-posted">Send {{ newComment.date }} <span /></p>
</li>
</ul>
<form class="add-comment">
<div class="row">
<div class="col-md-10">
<input type="text" class="form-control" ng-model="myComment" placeholder="Add a comment" />
</div>
<div class="col-md-2">
<button class="btn btn-default btn-sm" type="submit" ng-click="addComment(newMessage.id)">Comment</button>
</div>
</div>
</form>
</div>
</li>
</ul>
一切正常。我可以发送我的消息,我甚至可以发送帖子,但我从ng-model =&#34; myComment&#34; 中得到null
这是js控制器中的方法
$scope.addComment = function (messageId) {
myChatHub.server.addComment(messageId, userName, $scope.myComment);
};
你可以告诉我出了什么问题吗?
答案 0 :(得分:0)
你打破了ng-model
中总是有一个点的黄金法则,换句话说就是使用一个对象
ng-repeat
创建一个子范围,因此分配给ng-model
的原语仅存在于子范围内,因为原语没有继承。
在控制器中创建模型对象
$scope.model={}
然后使用ng-model="model.myComment"
并将帖子更改为:
$scope.addComment = function (messageId) {
myChatHub.server.addComment(messageId, userName, $scope.model.myComment);
};
This 3 minute video将会非常有启发性