【发布时间】:2014-12-12 17:58:58
【问题描述】:
我查看了很多帖子,但还没有找到与我正在寻找的内容完全匹配的帖子。我拆分为多个控制器,以将功能清晰地划分为多个区域。有一个集中式服务,其中包含在各个控制器之间传递并显示在不同区域的屏幕上的所有数据。我遇到了一个控制器的问题,该控制器正在获取与其他控制器相同的数据,但是当服务中的数据被操作时,UI 没有更新。在每个控制器中,我为服务中的对象设置了一个范围变量..
$scope.package = SampleService.getPackage();
然后我使用 ng-repeat 循环包,该包包含一个数组,并且可以包含要显示的嵌套数据数组。在此过程中,数据被处理并分配给这些项目(在服务内,而不是控制器内)。如果我将 $scope.package 变量放在一个循环中,我可以看到该变量正在从服务中更新(在控制台中查看它),但更改不会反映在屏幕上。特别是,我设置了几个值 true/false,根据它们的值,屏幕上会显示几个图标。直到我单击屏幕上的某些内容(假设这会触发摘要循环),图标才会显示(未检测到范围变量未更改)。然后将显示图标。但是,它们会根据任务的状态多次更改。我必须继续点击才能更改图标。
我有什么遗漏吗?对结构的更改可以在页面的另一个区域完美运行。这是我无法正常工作的一个领域。唯一的区别是我切换真/假而不是操纵对象的其他区域。可以使用 angular.copy 设置真/假值有帮助吗?
我有点不知道从这里做什么..
建议?
【问题讨论】:
标签: javascript angularjs angularjs-scope