服务与工厂的混淆据我所知,当我在工厂内返回一个被注入控制器的对象时。在服务内部处理对象时,我将使用this什么都不回。我以为服务是总是单身,而那个新工厂对象每个控制器都会被注射。然而,事实证明,工厂对象也是单例吗?演示示例代码:var factories = angular.module('app.factories', []);var app = angular.module('app', ['ngResource', 'app.factories']);
factories.factory('User', function () {
return {
first: 'John',
last: 'Doe'
};});app.controller('ACtrl', function($scope, User) {
$scope.user = User;});app.controller('BCtrl', function($scope, User) {
$scope.user = User;});变时user.first在……里面ACtrl结果证明user.first在……里面BCtrl也发生了变化。User是单身人士吗?我的假设是在一个工厂的控制器中注入了一个新的实例?
3 回答
手掌心
TA贡献1942条经验 获得超3个赞
app.factory('a', fn);app.service('b', fn);app.provider('c', fn);
a
存储的值来自运行 fn
,换言之: fn()
b
的存储值来自 new
英 fn
,换言之: new fn()
c
的存储值来自于 new
英 fn
,然后运行一个 $get
实例的方法
cache.a = fn()cache.b = new fn()cache.c = (new fn()).$get()
this
this.$get
- 3 回答
- 0 关注
- 471 浏览
添加回答
举报
0/150
提交
取消