AngularJS,将更改应用于工厂的视图
AngularJS, apply changes to the view from the factory
我尝试显示来自工厂$exceptionHandler有效期为 5 秒的错误消息。所以我有一个带有以下代码的视图
<div class="messages">
<div class="message" ng-repeat="message in errors">
{{message}}
</div>
</div>
和工厂
services.factory('$exceptionHandler',function ($injector) {
return function(exception, cause) {
var $rootScope = $injector.get('$rootScope');
$rootScope.errors = $rootScope.errors || [];
$rootScope.errors.push(exception.message);
setTimeout(function(){
$rootScope.errors.splice(0,1);
}, 5000);
};
});
消息显示正常,但在从阵列中删除它们后,它们仍然存在于视图中。我想我需要对$digest和$apply做点什么,但我不明白是什么。需要帮助!
当你
应该使用Angular的$timeout
服务时,你正在使用setTimeout
。
当回调由setTimeout
angular 触发时,它不知道它必须刷新 html。如果您改用$timeout
那么它将知道在回调完成后进行摘要循环,并且您的页面应该正确更新。
您也可以从回调内部显式触发摘要循环,有时您必须这样做,但对于超时,只需使用提供的服务。
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 根据某些条件在视图之间切换
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 将工厂服务数据发送到控制器,以便在视图中使用
- AngularJS,将更改应用于工厂的视图
- 使用 jQuery widget 工厂,创建包含 ui.sortable 的树视图
- 使用Angular中的工厂刷新视图
- 如何将工厂的更新应用于视图
- 在AngularJs中从视图到工厂访问$scope数据
- 在AngularJS中从视图到控制器再到工厂传递参数
- Angularjs 视图不显示从工厂返回的数据
- 如何在 ng-submit 调用工厂函数后更新视图
- 如何使用angularJS在视图中显示工厂方法值