angularjs - inner - ng-bind-html
¿Puedo tener múltiples funciones en mi AngularJS Factory? (2)
Estoy siguiendo el Tutorial de los documentos oficiales de AngularJS y quiero saber si puedo agregar otra función a la fábrica de teléfonos para poder organizar mejor el código. Han declarado una función de "consulta", pero ¿y si quisiera agregar una función de consulta2 que haga referencia a una URL diferente ... digamos phones2 /: phoneName.json por ejemplo?
Declaración de fábrica:
var phonecatServices = angular.module(''phonecatServices'', [''ngResource'']);
phonecatServices.factory(''Phone'', [''$resource'',
function($resource){
return $resource(''phones/:phoneId.json'', {}, {
query: {method:''GET'', params:{phoneId:''phones''}, isArray:true}
});
}]);
He intentado varias cosas y ninguna de ellas parece estar funcionando: s
Esta answer parece estar en el camino correcto, pero la sintaxis de cada función de fábrica no coincide con la anterior.
Algo a lo largo de las líneas de:
phonecatServices.factory(''Phone'', [''$resource'',
function($resource){
return {
query: ...
query2: ...
}
}]);
Este es el código de servicio:
myServices.factory(''Auth'', [''$resource'',
function($resource){
return {
Login: $resource(serviceURL + ''login'', {}, { go: { method:''POST'', isArray: false }}),
Logout: $resource(serviceURL + ''logout'', {}, { go: { method:''POST'', isArray: false }}),
Register: $resource(serviceURL + ''register'', {}, { go: { method:''POST'', isArray: false }}),
};
}
]);
Y desde mi controlador solo tengo que agregar la función go () para que funcione:
Auth.Login.go({ username: $scope.username, password: $scope.password },
Supongo que podría haber llamado a la función go después del método y llamarlo "post ()" en lugar de claridad ...
Un ejemplo de esto es: Link for Demo
angular.module(''services'', []).factory(''factoryName'', ["$filter",
function($filter) {
var method1Logic = function(args) {
//code
};
var method2Logic = function(args) {
//code
};
return {
method1: method1Logic,
method2: method1Logic
};
}
]).controller(''MainController'', ["$scope", "$rootScope", "$filter", "factoryName", function ($scope, $rootScope, $filter,factoryName) {
$scope.testMethod1 = function(arg){
$scope.val1 = factoryName.method1(arg);
};
$scope.testMethod2 = function(arg){
$scope.val2 = factoryName.method2(arg);
};
}]);
Hay incluso una versión mejorada de esta versión: References
function AnotherService () {
var AnotherService = {};
AnotherService.someValue = '''';
AnotherService.someMethod = function () {
};
return AnotherService;
}
angular
.module(''app'')
.factory(''AnotherService'', AnotherService);