工厂方法似乎未定义
Factory method seems to be undefined
简单明了。我有这个工厂:
ctrls.factory('dataLoad', ['$http', function($http) {
return {
loadFromJSON: loadFromJSON
}
function loadFromJSON() {
$http.get("data.json").then(function(response) {
return response;
});
}
}]);
这与我的控制器位于同一模块上。控制器在典型的路由技术之后绑定到模板,但所有内容都加载到索引.html模板中,因此在控制器中注入"dataLoad"应该没有问题,这很好用并且没有错误:
ctrls.controller('mainCtrl', ["$scope", "dataLoad", function($scope, dataLoad) {
在控制器中,我从一个方法调用 loadFromJSON,然后调用该方法:
function loadData(){
dataLoad.loadFromJSON().then(function(data) {
$scope.allCharts = data;
console.log($scope.allCharts);
}).then(function(err){
console.log(err);
});
}
loadData();
但是,不知何故,这行不通!它给了我以下错误:
错误:dataLoad.loadFromJSON(...) 未定义
我做错了什么?
loadFromJSON
没有return
语句,因此当您调用它时,它会返回undefined
。
你可能打算回报$http
回报的承诺。
function loadFromJSON() {
return $http.get("data.json");
}
(我删除了您放在那里的then
处理程序,因为它没有执行任何操作)。
相关文章:
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 使用javascript ajax post方法的未定义偏移PHP错误
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- PhoneGap无法调用未定义的方法loadurl
- jQuery验证器添加方法未定义
- Backbone中未定义的方法
- JS方法显示了未定义的简单示例
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 获取“;无法读取属性'[方法]'“未定义”;
- 续集返回未定义的模型自定义方法
- NoMethodError ('admin_application_path'的未定义方法)
- 理解modal.js中的未定义方法
- 带有base64的回形针:#<字符串:0xb46dba14>的未定义方法“stringify_keys”
- Rails 为 nil:NilClass 创建动作未定义方法 'each'
- 方法错误:未定义方法名称
- 在laravel 5.3中调用未定义方法IlluminateDatabaseQueryBuilder::attac
- addEventListener有无法解释的未定义方法错误
- 无法设置未定义方法的属性
- 带有ECMAScript6的JSHint:未定义方法