无法使用信号器从 ng-model 获取数据

can't get data from ng-model using 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="myComment"

中得到 null

这里是js控制器中的方法

 $scope.addComment = function (messageId) {
        myChatHub.server.addComment(messageId, userName, $scope.myComment);
    };

你能告诉我哪里出了问题吗?

您违反了在 ng-model 中始终有一个点的黄金法则 .. 或者换句话说,使用一个对象

ng-repeat 创建一个子作用域,并且您的基元分配给 ng-model 因此仅存在于子作用域中,因为基元没有继承。

在控制器中创建模型对象

$scope.model={}

然后使用 ng-model="model.myComment" 并将您的 post 更改为:

$scope.addComment = function (messageId) {
        myChatHub.server.addComment(messageId, userName, $scope.model.myComment);
};

This 3 minute video 会很有启发