我真的不知道它是什么,而且我已经绝望了,为什么工厂尽管被注入并且控制台记录...在调用函数后未定义。 我正在进行离子项目,所以......
继承我的工厂:
angular.module('starter.services')
.factory( 'EditarBsnsFct', ['$http', function($http){
var editarBsns = {};
editarBsns.editarBsns = function(url,datos){
$http.post(url, datos)
.success(function(data, status){
return data;
});
}
return editarBsns;
}]);
和我的控制员:
angular.module('starter.controllers')
.controller('BsnsDashboardEditarCtrl', ['$scope', '$http', '$state', 'EditarBsnsFct', function($scope, $http, $state, EditarBsnsFct){
$scope.bsns = {};
$scope.bsns.tags = [];
$scope.placeholder = 'Etiqueta tu negocio (cheve, rock, dj...)';
var usuario = JSON.parse( localStorage.getItem('user') );
$scope.loadTags = function($query){
return $http.get('http://hoppers.dev/getTags', {cache:true})
.then( function( res ){
var tags = res.data.data;
return tags.filter(function(tag) {
return tag.nombre.toLowerCase().indexOf($query.toLowerCase()) != -1;
});
});
}
$scope.actualizar = function(){
var url = 'http://hoppers.dev/dashBsns/actualizar/' + usuario.id;
var datos = JSON.stringify($scope.bsns);
EditarBsnFct.editarBsns(url, datos)
.success( function(){
$state.go('dashNegocio.perfil');
})
.error( function( err ){
alert('error');
});
}
}])
因此,当我在视图中单击actualizar函数时,它会给出错误:
ReferenceError:未定义EditarBsnFct 在Scope。$ scope.actualizar(http://localhost:8100/js/Controllers/bsnsDashboardEditarCtrl.js:26:5) 在fn(eval at(http://localhost:8100/lib/ionic/js/ionic.bundle.js:21972:15), :4:221) 在http://localhost:8100/lib/ionic/js/ionic.bundle.js:57514:9 在Scope.parent。$ get.Scope。$ eval(http://localhost:8100/lib/ionic/js/ionic.bundle.js:24673:28) 在Scope.parent。$ get.Scope。$ apply(http://localhost:8100/lib/ionic/js/ionic.bundle.js:24772:23) 在HTMLButtonElement。 (http://localhost:8100/lib/ionic/js/ionic.bundle.js:57513:13) 在HTMLButtonElement.eventHandler(http://localhost:8100/lib/ionic/js/ionic.bundle.js:12098:21) 在triggerMouseEvent(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2865:7) 在tapClick(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2854:3) 在HTMLDocument.tapMouseUp(http://localhost:8100/lib/ionic/js/ionic.bundle.js:2927:5)
我不知道它是什么,所以希望有人可以帮助我。
非常感谢...
答案 0 :(得分:2)
您正在注射EditarBsn s Fct(注意s)但尝试将其引用为EditarBsnFct
答案 1 :(得分:0)
由于您的工厂是在与控制器模块不同的模块中定义的。
定义控制器模块时,需要将工厂模块作为依赖项注入,以帮助控制器识别在另一个模块中定义的工厂。
类似的东西:
angular.module('starter.controller',['starter.services'])