Javascript 多控制器角度共享模型

Javascript 多控制器角度共享模型,javascript,angularjs,Javascript,Angularjs,我不熟悉角度,并试图澄清我的概念: 我的应用程序需要一个模型,该模型将由不同的控制器更新。因此,模型应该共享。下面的链接清楚地解释了我应该如何处理它 它使用工厂方法创建两个服务。manager服务检查模型类是否已经实例化。如果是,它将返回一个已经实例化的引用,否则它将new的实例。因此,每个模型都会看到相同的模型实例,并且在更新模型时,所有视图中都会发生更新 如果不使用工厂创建服务,而是使用服务方法创建服务,该方法自动返回一个新的实例,该实例将被共享或绑定到控制器 我假设使用服务方法无法实现我

我不熟悉角度,并试图澄清我的概念:

我的应用程序需要一个模型,该模型将由不同的控制器更新。因此,模型应该共享。下面的链接清楚地解释了我应该如何处理它

它使用工厂方法创建两个服务。manager服务检查模型类是否已经实例化。如果是,它将返回一个已经实例化的引用,否则它将
new的
实例。因此,每个模型都会看到相同的模型实例,并且在更新模型时,所有视图中都会发生更新

如果不使用
工厂
创建服务,而是使用
服务
方法创建服务,该方法自动返回一个
新的
实例,该实例将被共享或绑定到控制器

我假设使用
服务
方法无法实现我的案例,我必须使用
工厂
方法,而不是
服务
方法,因为每次将其注入任何控制器时,它都是
新的
服务。不在内部维护一些池,以确保在所有控制器中注入相同的服务实例


我不希望为模型添加一个附加的管理器对象,以确保在所有控制器中使用相同的实例

就您的情况而言,服务和工厂都可以使用,因为它们在功能上本质上是相似的。

根据我的理解,您希望按照单例设计模式,在所有控制器之间共享一个新闻实体,确保一次更新->全部更新。这可以使用角度服务完美地实现

我自己发现使用服务比工厂方法更容易,因为前者有一个易于使用的语法:D

另外,为了更好地理解这两种方法之间的差异,您可以看看答案


就您的情况而言,服务和工厂都可以使用,因为它们在功能上本质上是相似的。

根据我的理解,您希望按照单例设计模式,在所有控制器之间共享一个新闻实体,确保一次更新->全部更新。这可以使用角度服务完美地实现

我自己发现使用服务比工厂方法更容易,因为前者有一个易于使用的语法:D

另外,为了更好地理解这两种方法之间的差异,您可以看看答案


还要检查以下线程:@TechMa9iac每次新建一个类时,它会创建一个单独的实例,服务会自动更新,这将不允许共享实例。我无法在服务方法中跟踪实例,以便在控制器之间共享它们,但在工厂中,它们不会被更新。您将在所有控制器和其他应用程序组件中共享同一实例。以编程方式实现它。@TechMa9iac我没有new的任何“news”实体,我是说javascript new关键字,我理解。。试试看。。服务将正常工作,不会有任何新实例,相同的实例将被共享。还要检查以下线程:@TechMa9iac每当类被更新时,它会创建一个单独的实例,服务将自动更新,这将不允许共享实例。我无法在服务方法中跟踪实例,以便在控制器之间共享它们,但在工厂中,它们不会被更新。您将在所有控制器和其他应用程序组件中共享同一实例。以编程方式实现它。@TechMa9iac我没有new的任何“news”实体,我是说javascript new关键字,我理解。。试试看。。服务将起作用,不会有任何新实例,相同的实例将在所有用户之间共享。