javascript - 在 Controller 上注入(inject) ui-router 解析结果

标签 javascript angularjs angular-ui-router

我试图在 Controller 中注入(inject)这个由服务解析的 fieldsList 变量,但出现错误:

projectApp = angular.module('projectApp', ['ui.router']);

projectApp.config(function($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {

    $urlRouterProvider.otherwise('/');

    $stateProvider.state('initial', {
        url: '/',
        template: 'Hi !'
    })

    .state('fields', {
        url: '/customers/fields',
        resolve: {
            fieldsList: function (fieldService) {
                return fieldService.getFields();
            }
        },
        views: {
            '': {
                controller: 'fieldController',
                templateUrl: '/static/app/customers/pages/fields.html'
            },
            'list@fields': {
                controller: 'fieldListController',
                templateUrl: '/static/app/customers/pages/fields.list.html'
            }
        }
    })

    //$locationProvider.html5Mode(true);    
});

// Controller

projectApp.controller('fieldListController', ['$scope, $http', 'fieldsList', function($scope, $http, fieldsList) {

    this.fieldsList = fieldsList;

    console.log(this.fieldsList);
}]);

//错误:

angular.min.js:124 Error: [$injector:unpr] http://errors.angularjs.org/1.6.6/$injector/unpr?p0=%24scope%2C%20%24httpProvider%20%3C-%20%24scope%2C%20%24http%20%3C-%20fieldListController
    at angular.min.js:7
    at angular.min.js:46
    at Object.d [as get] (angular.min.js:43)
    at angular.min.js:46
    at d (angular.min.js:43)
    at e (angular.min.js:44)
    at Object.instantiate (angular.min.js:44)
    at angular.min.js:95
    at Object.<anonymous> (angular-ui-router.min.js:11)
    at angular.min.js:17 "<div class="row mt-4 ml-1 mr-1 ng-scope" ui-view="list">"

任何人都可以看看这个并请说出我做错了什么吗? PS:我可以记录webservice的数据。所以看起来至少服务有效。

最佳答案

它的发生仅仅是因为你的 Controller 的注入(inject)数组有 '$scope, $http' 作为一个字符串。
像这样拆分两个依赖项:

['$scope', '$http', 'fieldsList', function($scope, $http, fieldsList) {

这应该可以解决错误。

关于javascript - 在 Controller 上注入(inject) ui-router 解析结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129450/

相关文章:

javascript - RxJS Observable 返回数组,每次数组迭代运行另一个函数

javascript - 如果没有 $scope.$apply,模型不会更改

angular-ui-router - Angular UI Router state.go参数在stateChangeStart中不可用

javascript - Angular ui-router向url添加哈希

javascript - AngularJS:模板中的第二个应用程序不起作用

javascript - 在不同的组件 React 中使用一系列选项

javascript - 如何设置 Angular 中两个输入字段的组合最大长度

Angular 9 路由给出没有错误的空白页

javascript - JavaScript 如何处理字符串数字

javascript - 如何计算Google Earth Engine中分类图像(Landsat)中每个类别的像素总和?