【发布时间】:2016-02-08 10:45:58
【问题描述】:
我在控制器中做出承诺时遇到了麻烦。
这是包含模块、控制器和工厂的代码 当我调用Factory 并等待响应时,一切正常。
我在控制台中收到错误“然后不是函数” 但我不知道代码有什么问题
angular
.module('sampleApp', [])
.controller('SampleController', SampleController)
.factory('myFactory', myFactory);
////////// FACTORY
function myFactory () {
var task = {
getData : getData,
counter: 0
};
return task;
// Implementation details //
// ---------------------- //
function getData () {
task.counter ++;
var response = "FakeData";
return response;
}
}
////////// CONTROLLER
function SampleController (myFactory, $log) {
$log.info("Sample controller initialized");
var vm = this;
vm.title = "SampleView";
vm.callFactory = callFactory;
vm.factoryResponse;
callFactory();
// Implementation details //
// ---------------------- //
function callFactory () {
myFactory.getData()
.then(function (data) {
vm.factoryResponse = data;
return vm.factoryResponse;
})
.catch(function () {
$log.error("Ups! We cannot complete the request :(");
});
}
}
【问题讨论】:
-
当然,因为
getData不返回 Promise 对象。这个var secondString = ", sample factory value"; var response = randomParameter + secondString; return response;的目的是什么?没有意义。 -
我只是从我的真实应用程序中删除了一些东西,因为对于示例来说是不必要的,我编辑它们
标签: javascript angularjs controller factory