2016-09-16 1 views
0

здесь мой .html:не может получить данные из нг-модели с использованием signalr

<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> 

все работает. я могу отправить свои сообщения, и я могу даже послать сообщения, но я получаю пустой от нг-модели = «myComment»

здесь метод в Js контроллер

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

Пожалуйста, вы можете сказать мне, что случилось ?

ответ

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 будет очень поучительно

+0

спасибо большое! – mrnvdvmv