1

我是 AngularJS 的新手,我真的很喜欢$apply() 的工作方式。我现在正在制作一个聊天应用程序。每次客户端收到朋友的消息时,模型都会在没有 Angular 通知的情况下更改,因此我需要调用 $apply()。

我只是对模型中存在 10k 条消息进行快速测试,每次有新消息出现时,$apply 需要 1 秒来完成它的脏检查。

所以,我的问题是:Angular 真的适合这种类型的应用程序吗?

4

1 回答 1

0

我在监控远程终端时遇到了同样的问题。你真的需要在模型中存储消息吗?通过使用指令将消息存储在 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));
            }
        }
    };
});
于 2013-10-12T07:52:16.093 回答