Angular共享模型与多个控制器

12 浏览
0 Comments

Angular共享模型与多个控制器

我对Angular还不熟悉,正在努力理清我的概念:\n我的应用程序需要一个单一的模型,由不同的控制器进行更新。所以,模型应该是共享的。以下链接清楚地解释了我应该如何进行:\nhttp://www.webdeveasy.com/angularjs-data-model/\n它使用工厂方法创建了两个服务。管理服务检查模型类是否已经实例化,如果是,则返回已经实例化的引用,否则它会新建一个实例。因此,每个模型都看到相同的模型实例,并且在更新模型时,所有视图都会进行更新。\n如果不是使用factory来创建服务,而是使用service方法创建服务,该服务会自动返回一个new\'d实例,那么它是共享的还是绑定到控制器的?\n我认为我的情况不能使用service方法实现,我必须使用factory方法而不是service方法,因为它每次在任何控制器中注入时都会new一个服务。Angular是否不维护一些内部池以确保将相同的服务实例注入到所有控制器中?\n我不想为模型再添加一个管理对象,以确保在所有控制器中使用相同的实例。

0
0 Comments

在你的情况下,服务和工厂都可以使用,因为它们在功能上本质上是相似的。据我理解,你希望一个新闻实体在所有控制器之间共享,根据单例设计模式,确保一个更新会更新全部。这可以通过使用Angular服务完美实现。我个人觉得使用服务比使用工厂方法更容易,因为前者有一个易于使用的语法:D为了更好地理解两种方法之间的区别,你可以看看这个答案:this。此外,还可以查看以下主题:stackoverflow.com/questions/13762228/…stackoverflow.com/questions/15666048/…。每次创建一个类时,它都会创建一个单独的实例,服务会自动创建,这样就不能共享实例。但是在工厂中,我可以跟踪实例以在控制器之间共享。它们不会被实例化。你将在所有控制器和其他应用程序组件之间共享相同的实例。以编程方式实现它...我没有任何“新闻”实体,我指的是JavaScript中的new关键字。我理解了...试试服务,它会工作,不会有任何新的实例,相同的实例将在整个应用程序中共享。

0