2

我喜欢 Durandal 具有在 VM 上调用的激活/停用方法,甚至可以缓存视图。

有没有办法在 Angular 中拥有相同的功能?

4

1 回答 1

1

您可以使用服务/工厂。这些是 AngularJS 中的单例,您可以将它们注入控制器。每个控制器严格有一个服务,并且该服务将在导航到视图/控制器之间进行维护。

http://docs.angularjs.org/guide/dev_guide.services.creating_services

这样做的方式是您的控制器将myService作为注入的依赖项。然后将其分配给 $scope as $scope.cache = myService。然后在您的视图中,您绑定到cache.someProperty想要缓存的元素。

顺便说一句:

您甚至可以在控制器之间共享包含状态数据的服务。虽然我建议不要使用这种模式,因为它看起来像全局状态。您在控制器之间共享的服务在理想情况下应该只提供功能而不是数据对象。除非您专门寻找全局数据存储 :)

于 2013-06-04T01:39:27.270 回答