错误:ng:当尝试在单独的文件中定义控制器时,areq Bad Argument

时间:2016-01-07 19:13:01

标签: javascript angularjs module angular-ui-router

我的应用程序运行良好,但我有一个巨大的app.js,所以要模块化我将控制器放入单独的文件并以更传统的方式设置我的应用程序。现在我得到上面的错误以及:' Argument' prodPageCtrl'不是'。这是我的prodPageCtrl

"use strict";
angular.module("app.products").controller('prodPageCtrl', function($scope, $http) {
//grid def / config
$scope.gridOptions = {
    enableFiltering: true,
    columnDefs : [
        {
            field: 'productId',
            name: 'View Product',
            cellTemplate: '<div class="ui-grid-cell-contents"><a data-ui-sref="app.products.readProductPage({productId: row.entity.productId})"><i class="fa fa-eye"></i> </a>'
        },
        {
            field: 'productId',
            name: 'Edit Product',
            cellTemplate: '<div class="ui-grid-cell-contents"><a data-ui-sref="app.products.editProductPage({productId: row.entity.productId})"><i class="fa fa-pencil-square-o"></i></a>' +
            '</div>',
        },
        {
            field: 'name'
        },
        {
            field: "upc"
        },
        {
            field: 'sku'
        },
        {
            field: 'mpn'
        },
        {
            field: 'productQty'
        },
        {
            field: 'unitOfMeasure'
        },
        {
            field: 'price'
        },
        {
            field: 'attribs'
        },
        {
            field: 'descript'
        }
    ]
};
//end grid options

$http.get("api/products")
    .then(function(response) {
        $scope.productArray = response.data;
        console.log(response.data);

        //parse JSON attributes string to objects TODO fix this by make attribute formatting better.
        for(var lcv = 0; lcv < $scope.productArray.length; lcv++) {
            $scope.productArray[lcv].attribs = JSON.parse($scope.productArray[lcv].attribs);
        }

        $scope.gridOptions.data = $scope.productArray; //put data into ui-grid

    });

});`

这是我app.js中的配置:

angular.module('app.products', ['ui.router']);
angular.module('app.products').config(function ($stateProvider) {
$stateProvider
    .state('app.products', {
        abstract: true,
        data: {
            title: 'Products'
        }
    })
    .state('app.products.productPage', {
        url: '/products',
        data: {
            title: 'Products Page'
        },
        views: {
            "content@app": {
                templateUrl: 'products/views/products.html',
                controller: 'prodPageCtrl'
            }
        }

    })
    .state('app.products.addProductPage', {
        url: '/products/add',
        data: {
            title: 'Add a Product'
        },
        views: {
            "content@app": {
                templateUrl: 'app/app-views/views/AddProducts.html',
                controller: 'AddProdCntrl'
            }
        }
    })
    .state('app.products.readProductPage', {
        url: '/products/:productId',
        data: {
            title: 'View a Product'
        },
        views: {
            "content@app": {
                templateUrl: 'app/app-views/views/AddProducts.html',
                controller: 'readProdCntrl'
            }
        }
    })
    .state('app.products.editProductPage', {
        url: '/products/edit/:productId',
        data: {
            title: 'Edit a Product'
        },
        views: {
            "content@app": {
                templateUrl: 'app/app-views/views/AddProducts.html',
                controller: 'editProdCntrl'
            }
        }
    })
});

最后有没有办法将我的模块的.config移动到其他文件,甚至整个模块声明?以进一步模块化。如果您知道我可以在哪里了解更多相关信息,请告诉我们!谢谢

1 个答案:

答案 0 :(得分:0)

通过使用GULP将我的所有js连接到构建文件夹

来修复