我是 AngularJS 的新手,我真的很喜欢$apply() 的工作方式。我现在正在制作一个聊天应用程序。每次客户端收到朋友的消息时,模型都会在没有 Angular 通知的情况下更改,因此我需要调用 $apply()。
我只是对模型中存在 10k 条消息进行快速测试,每次有新消息出现时,$apply 需要 1 秒来完成它的脏检查。
所以,我的问题是:Angular 真的适合这种类型的应用程序吗?
我是 AngularJS 的新手,我真的很喜欢$apply() 的工作方式。我现在正在制作一个聊天应用程序。每次客户端收到朋友的消息时,模型都会在没有 Angular 通知的情况下更改,因此我需要调用 $apply()。
我只是对模型中存在 10k 条消息进行快速测试,每次有新消息出现时,$apply 需要 1 秒来完成它的脏检查。
所以,我的问题是:Angular 真的适合这种类型的应用程序吗?
我在监控远程终端时遇到了同样的问题。你真的需要在模型中存储消息吗?通过使用指令将消息存储在 DOM 中,嵌入可能对您有用吗?
小提琴。
HTML:
<div id="container">
<button ng-click="add(test)">Add message</button>
<ng-message>Text 1</ng-message>
<ng-message>Text 2</ng-message>
<ng-message>Text 3</ng-message>
</div>
JS:
angular.module("main", [])
.controller("MyCtrl", function($scope) {
$scope.test = 'Test Message';
})
.directive("ngMessage", function ($compile) {
return {
template: '<div ng-transclude><b>Heading <br></b></div>',
restrict: 'E',
transclude: true,
link: function (scope, elm) {
scope.add = function(text){
elm.after($compile('<ng-message>' + text + '</ng-message>')(scope));
}
}
};
});