构建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/

10-15 06:05