Мой пользовательский интерфейс не обновляется после обновления списка в файле js

#angularjs #angularjs-scope

#angularjs #angularjs-scope

Вопрос:

 <td rowspan="5" colspan="2">
    <div id="style-2" class="scrollit">
        <table class="table-borderless table-condensed" style="height:100px; width:100%; overflow-y:scroll">
            <tr>
                <td colspan="2" class="verticleAlignMidle">
                    <h6><b>{{ctrl.commentsBox.length}} Comments:</b></h6>
                </td>
            </tr>
            <tr ng-repeat="item in ctrl.commentsBox">
                 <td class="width8">
                     <div class="commentCol divStyle">{{item.name}}</div>
                 </td>
                 <td class="width11">
                     <span><b>{{item.FullName}}</b> {{item.date}}</span>
                     <br /> <span>{{item.comment}}</span>
                 </td>
             </tr>
         </table>
     </div>
 </td>
  

Это мой список. Это необходимо обновить при добавлении комментария и нажатии enter:

 <td class="width33 verticleAlignMidle" colspan="2">
    <textarea cols="80" rows="5" ng-keyup="$event.keyCode == 13 ? ctrl.saveAdGroup() : null"
    ng-model="ctrl.textComment" ng-view="ctrl.textComment" placeholder="Write a comment"></textarea>
</td>
  

И функция :

 ctrl.saveAdGroup = function () {
     var ctrl = this;
     var c = ctrl.textComment;
     ctrl.textComment = "";
     var n = "DN";
     var fullName = "Dummy Name";
     var formatDate = ctrl.dates();
     var objComment = { name: n, date: formatDate, comment: c, FullName: fullName };
     ctrl.commentsBox.push(objComment);
     alert(ctrl.commentsBox.length);
};
  

Я получаю увеличенную длину в предупреждении, но не отражаюсь в пользовательском интерфейсе.

Комментарии:

1. можете ли вы добавить скрипку / plunkr …?

Ответ №1:

Вам нужно вызвать angular watcher вручную, используя:

 $scope.$apply()