AngularJS在模型因事件而改变后不刷新视图
AngularJS not refreshing view after model changed as result of an event
我准备了一个普朗克与一个应用程序的简化场景,我正在编码的地方,这是发生的。
对场景的一点解释:
- 有一个控制器加载到$作用域中的事务列表(Transaction类型的对象)
- 此控制器侦听由负责持久化新的或更新的Transaction对象的服务产生的事件,然后重新加载模型 视图使用ng-repeat呈现事务列表
- 每个事务都可以单独更新(提交或回滚) AngularJS应用程序有一个run()块,它每2秒创建一个新的Transaction对象,模拟这些事务来自外部源(例如,对服务器的$http请求)
你将看到的是,当接收到服务产生的事件后,用一个新的对象列表重新分配模型时,没有重新加载视图。
在过去的48小时里,我一直在为这个烦恼。这种行为最常见的原因是修改了AngularJS外部的模型,而不是调用$apply(),但(我认为)这不是情况。也尝试检查$scope。$$phase和手动调用$apply或$digest(即使这可能被认为是潜在的错误),但根本没有成功。
我做错了什么吗?这是臭虫吗?我还有什么别的办法吗?
setInterval
也是"在Angular之外",我不确定你是否尝试过在那里使用$apply。如果你把transactions.persist(t);
包装在app.js中的$rootScope.$apply()
中,你会看到列表每两秒刷新一次。"COMMIT"answers"rollback"按钮产生的更改也会立即显示。
相关文章:
- $routeParams在传递到新视图时未定义&控制器
- 如何在渲染新视图之前关闭所有事件
- 从Backbone中的另一个视图调用新视图
- Angular2 在创建 ngSwitch 新视图后调用自定义函数
- jQuery Mobile 在数据库查询后刷新列表视图
- 主干新视图反映旧模型数据
- 创建新视图时调用呈现函数
- 如何使用 javascript 同时刷新 mvc 视图和部分视图
- 在表单提交后,无法使用 mvc razor 中的 ajax 从其中的另一个分部视图刷新分部视图
- 离子替换新视图的选项卡和页脚
- 离子 / 如何期望刷新缓存视图
- YII:如何将参数列表从js传递到控制器,并通过传递另一个列表来调用新视图
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- 如何使用Kendo数据源中的新数据来刷新列表视图
- 如何在Jquery Mobile 1.4.5中刷新新的Div内容
- 更改值后刷新角度视图
- 美元AngularJs http.post不渲染新视图
- 实时刷新Rails视图
- Angular UI Router新视图,相同的URL
- Knockoutjs的日期时间字段更新不会刷新模型视图