我有一个AngularJS服务,如下所示:
angular.module('myModule', [])
.factory('$myService', function () {
return {
getName: function () {
return 'Bill';
},
isAvailable: function () {
return true;
}
};
})
;
有没有办法添加属性?目前,该服务具有功能(aka $myService.isAvailable()
)。我很好奇,有没有办法像$myService.someProperty
这样的东西?如果是这样,怎么样?或者,服务中的所有内容都必须是一个功能吗?
谢谢!
答案 0 :(得分:2)
是的,您只需在返回的对象中添加属性
即可angular.module('myModule', [])
.factory('$myService', function () {
return {
getName: function () {
return 'Bill';
},
isAvailable: function () {
return true;
},
someProperty: 'New Property'
};
});
答案 1 :(得分:1)
使用Revealing Module Pattern时,您可以轻松封装数据并仅公开您在公共API中所需的属性/功能:
angular.module('myModule', [])
.factory('$myService', function () {
var name = { name: 'John' };
var phone = { phone: '555-5555'};
var SSN = 123456789;
var address = '5555 Rd Blvd.';
var available = { isAvailable: false };
return {
getName: function () {
return name;
},
isAvailable: function () {
return available;
}
name: name,
phone: phone,
address: address
};
})
;