我可以在工厂服务中使用工厂服务功能吗?
Can I use Factory service functions inside the factory service?
例如我们有这个工厂服务,这个服务将获取并设置用户的名字。
app.factory('userService',['$rootScope',function($rootScope){
var user = {};
return {
getFirstname : function () {
return user.firstname;
},
setFirstname : function (firstname) {
user.firstname = firstname;
$rootScope.$broadcast("updates");
}
}
}]);
我可以在此服务中使用 getFirstname 函数吗??如果我可以,那你能告诉我怎么做吗
是的,如果您将 javascript 分成几块,就可以。不要在 return 对象中定义函数,只需预先将其分配给一个变量即可。然后就可以使用工厂里面的函数了。请记住在最后将函数分配给您的 return 对象。
app.factory('userService', ['$rootScope', function ($rootScope) {
var user = {};
var getFirst = function() {
return user.firstname;
};
//Do anything else with getFirst
return {
getFirstname: getFirst, //assign the function to the factory return obj
setFirstname: function(firstname) {
user.firstname = firstname;
$rootScope.$broadcast("updates");
}
};
}]);
我认为有更好的方法来保持服务代码的组织和清洁。
咖啡脚本:
app.factory 'userService', [
'$rootScope'
($rootScope) ->
service =
user: null
getFirstName: ->
service.user.firstname
getLastName: ->
service.user.firstname
setFirstName: (firstname) ->
service.user.firstname = firstname
$rootScope.$broadcast 'updates'
return
getDisplayName: ->
service.getFirstName() + service.getLastName()
]
Javascript:
app.factory('userService', ['$rootScope', function($rootScope){
var service = {
user: null,
getFirstName : function () {
return service.user.firstname;
},
getLastName : function () {
return service.user.firstname;
},
setFirstName : function (firstname) {
service.user.firstname = firstname;
$rootScope.$broadcast("updates");
},
getDisplayName: function() {
return service.getFirstName() + service.getLastName();
}
}
return service;
}]);
例如我们有这个工厂服务,这个服务将获取并设置用户的名字。
app.factory('userService',['$rootScope',function($rootScope){
var user = {};
return {
getFirstname : function () {
return user.firstname;
},
setFirstname : function (firstname) {
user.firstname = firstname;
$rootScope.$broadcast("updates");
}
}
}]);
我可以在此服务中使用 getFirstname 函数吗??如果我可以,那你能告诉我怎么做吗
是的,如果您将 javascript 分成几块,就可以。不要在 return 对象中定义函数,只需预先将其分配给一个变量即可。然后就可以使用工厂里面的函数了。请记住在最后将函数分配给您的 return 对象。
app.factory('userService', ['$rootScope', function ($rootScope) {
var user = {};
var getFirst = function() {
return user.firstname;
};
//Do anything else with getFirst
return {
getFirstname: getFirst, //assign the function to the factory return obj
setFirstname: function(firstname) {
user.firstname = firstname;
$rootScope.$broadcast("updates");
}
};
}]);
我认为有更好的方法来保持服务代码的组织和清洁。
咖啡脚本:
app.factory 'userService', [
'$rootScope'
($rootScope) ->
service =
user: null
getFirstName: ->
service.user.firstname
getLastName: ->
service.user.firstname
setFirstName: (firstname) ->
service.user.firstname = firstname
$rootScope.$broadcast 'updates'
return
getDisplayName: ->
service.getFirstName() + service.getLastName()
]
Javascript:
app.factory('userService', ['$rootScope', function($rootScope){
var service = {
user: null,
getFirstName : function () {
return service.user.firstname;
},
getLastName : function () {
return service.user.firstname;
},
setFirstName : function (firstname) {
service.user.firstname = firstname;
$rootScope.$broadcast("updates");
},
getDisplayName: function() {
return service.getFirstName() + service.getLastName();
}
}
return service;
}]);