构建Web API之后,我只是将一个控制器提升为服务(.factory),以便与AngularJS中的其他控制器共享该数据。
但是,似乎我有语法错误,因此不接受工厂。
这是我的App.js:
//appContacts.js
(function () {
"use strict";
var app = angular.module("appContacts", ["simpleControls", 'ui.router', 'ngResource'])
.config(a lot of stuff here)
.factory('ContactService', function ($resource) {
var ContactService = {};
var vm = this;
vm.contacts = [];
vm.newContact = {};
vm.errorMessage = "";
vm.isBusy = true;
// Load all contacts
ContactService.getContacts = function () {
return $resource.get("api/contacts")
.then(function (response) {
angular.copy(response.data, vm.contacts);
}
);
};
//Set Current Contact
ContactService.setCurrentContact = function (contact) {
vm.currentContact = contact;
return vm.currentContact;
};
return ContactService;
})
})();
这是我的contatcsController:
//contactsController.js
(function () {
"use strict";
angular.module("appContacts")
.controller("contactsController", function (ContactService) {
//Get all Contacts
ContactService.getContacts = function () {
vm.contacts = contacts;
}
vm.setCurrentContact = function (contact) {
vm.currentContact = contact;
};
})
})();
我不断收到此错误:可能是未处理的拒绝:控制台中的{},前端未显示任何内容。
有人知道为什么它不能在工厂中使用与控制器内部相同的代码吗?
最佳答案
https://github.com/angular-ui/ui-router/issues/2889的更多详细信息
app.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}]);
关于javascript - AngularJS:代码在Controller中工作,但不在工厂中工作:可能未处理的拒绝:{},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39019490/