参数'PortfolioController'不是函数,未定义

时间:2015-12-09 23:07:54

标签: angularjs angular-fullstack

我是角色的新手,我试图用yeoman angular-fullstack生成器生成一个项目。我想添加一个新的url / portfolio,所以我在同一级别复制了主文件夹,并将其重命名为“portfolio”。 我创建了三个文件:

  

1)portfolio.controller.js 2)portfolio.html 3)portfolio.js

我在客户端的index.html中包含了js文件,如下所示:

<script src="app/portfolio/portfolio.controller.js"></script>
<script src="app/portfolio/portfolio.js"></script>

以下代码可以在控制器中找到:

'use strict';

(function() {

class PortfolioController {

  constructor($http, $scope, socket) {
    console.log("working");
  }
}

angular.module('myPortfolioApp')
  .controller('PortfolioController', PortfolioController);

})();

这来自portfolio.js:

'use strict';

angular.module('myPortfolioApp')
  .config(function($stateProvider) {
    $stateProvider
        .state('portfolio', {
        url: '/portfolio',
        templateUrl: 'app/portfolio/portfolio.html',
        controller: 'PortfolioController',
        controllerAs: 'portfolio'
    });
  });

1 个答案:

答案 0 :(得分:1)

您没有声明新模块,您缺少依赖项数组:

angular.module('myPortfolioApp',[]) //NOTICE THE BRACKETS
  .config(['$stateProvider', function($stateProvider) {
    $stateProvider
        .state('portfolio', {
        url: '/portfolio',
        templateUrl: 'app/portfolio/portfolio.html',
        controller: 'PortfolioController',
        controllerAs: 'portfolio'
    }]);
  });