服務與工廠的混淆據我所知,當我在工廠內返回一個被注入控制器的對象時。在服務內部處理對象時,我將使用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 關注
- 494 瀏覽
添加回答
舉報
0/150
提交
取消