正在尝试调用工厂方法
Trying to call factory method
我得到以下错误:TypeError:MyTheme.register不是函数
因为我正试图从控制器文件夹中的包中调用此函数。我试过:
vm.register = function() {
MyTheme.register(this.user);
};
我也试过这个:
vm.register = function() {
MyTheme.prototype.register(this.user);
};
我的两次尝试都没有成功。
该函数位于services/myTheme.js:中的我的包中
'use strict';
angular.module('mean.myTheme').factory('MyTheme', [
function() {
MeanUserKlass.prototype.register = function(user) {
$http.post('/api/register', {
email: user.email,
password: user.password,
confirmPassword: user.confirmPassword,
username: user.username,
name: user.name
})
.success(this.onIdentity.bind(this))
.error(this.onIdFail.bind(this));
};
return {
name: 'myTheme'
};
}
]);
您需要这个:
var module = angular.module('MyModule');
module.factory('MyFactory', function () {
return { // all of this will be available, when you inject MyFactory
someFoo: function () {}
}
});
module.controller('MyCtrl', ['MyFactory', function (MyFactory) {
MyFactory.someFoo(); // available now
}])
您需要在返回对象中公开函数,或者可能只是返回MeanUserKlass对象。以下是一篇关于工厂和原型的文章:http://blog.revolunet.com/blog/2014/02/14/angularjs-services-inheritance/
相关文章:
- AngularJS:$q.dedefe()不能由工厂方法共享
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何重用ajax工厂方法来设置$scoped变量
- angular.js:13424 ReferenceError:在控制器中使用工厂方法时未定义索引
- 如何从变量中动态调用工厂方法
- jasmine 2.0测试angularjs的工厂方法,这是一个承诺
- 如何访问控制器内的工厂方法
- 工厂方法似乎未定义
- 调用工厂方法时出现 Angularjs 错误
- 在angularjs工厂方法中添加事件侦听器无法按预期工作
- 如何在Angular中的工厂方法中返回数据
- 工厂方法没有't return-TypeError:无法读取属性'那么'的未定义
- AngularJS-错误:[$injector:pget]提供程序'函数()'必须定义$get工厂方法
- $rootScope和工厂方法
- 正在尝试调用工厂方法
- 组合多个API调用和处理后从工厂方法返回promise
- 在其他方法中使用工厂方法
- Angular的工厂方法不是一个函数(dataFactory).addContact不是一个函数)
- AngularJS提供了工厂方法的成功回调