Я добавляю функцию чата на свой сайт, используя angularJS и signalR. Сейчас это очень просто. Мой угловой контроллер поддерживает множество журналов чата и распечатывает их с помощью:
<div ng-repeat="log in vm.logs">{{log.sender}}: {{log.msg}}</div>
Все проводки работают, и я проверил через console.log(), что сообщения принимаются мгновенно. Тем не менее, кажется, что DOM не обновляется, пока я не взаимодействую со страницей (например, зависает над другим компонентом, к которому привязано угловое действие). Я не уверен, что это проблема с угловым или просто javascript. Есть идеи?
Я видел это на сайтах, подобных Facebook, и я думал, что это по дизайну, но похоже, что это браузер /javascript.
Используйте $ timeout и оберните массив видимости vm.logs функцией. $ timeout автоматически вызывает цикл вычисления углов, и ваш dom должен начинать обновляться.
$scope.$apply()
Apply$scope.$apply()
для обратного вызова от signalR?