Я работаю с angularjs, и мой веб-сайт получает данные из websocket каждую секунду, и теперь я использую $scope.$apply
для обновления каждый раз, когда я получаю факт, проблема в том, когда мой сервер отправляет больше информации, чем обычно веб-страница очень медленная, и если я прокомментирую $scope.$apply
, то работа в сети будет прекрасной.Angularjs refresh only angular.element
У меня есть что-то вроде этого
$scope.ChangeData=function(str){
//process.... take around 1ms
//here i change a variable, with new info
$scope.$apply();
//here the process print 60-100ms
}
, то я хочу, чтобы это сделать,
$scope.ChangeData=function(str){
//process.... take around 1ms
//here i change a variable, with new info
angular.element(document.getElementById(str.ID)).scope().$apply
//I do this, I hope the process will only take a few ms
//beacuse i change only the changed element
}
, но у меня есть ошибки в этой части
Не удается прочитать свойство «$ применять 'не определено
пожалуйста, помогите мне ..
UPDATE Example in plnkr
Вы вводите '$ scope' в свою функцию контроллера? Кроме того, зачем вам нужно называть '$ apply'? Если вы выполняете это в рамках логики обещания или какой-либо другой угловой конструкции, вам не нужно будет называть '$ apply'. И в качестве примечания, ** ** не рекомендуется использовать логику типа 'angular.element (elem) .scope()' где угодно, кроме как внутри директивы.Рассмотрите возможность использования службы, если эти данные должны потребляться другим контроллером или использовать аргумент 'elem', указанный в вашей функции' link', в директиве – jusopi
, если я не использую '$ apply', информация не обновляется, пока вы не нажмете на элемент, – jearca
ChangeData, как сказано в названии, изменяет данные, но эта информация не отображается, пока вы не сделаете '$ apply' или' click' – jearca