无法使用signalr从ng-model获取数据

时间:2016-09-16 00:03:09

标签: angularjs signalr

这是我的.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);
    };
你可以告诉我出了什么问题吗?

1 个答案:

答案 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将会非常有启发性