首页 > 解决方案 > 角度控制器功能未定义

问题描述

我尝试使用meanjs.org. 该控制器与其他现有控制器一起工作正常,但与我创建的新控制器无法正常工作,不胜感激,谢谢。

angular.js:12808 错误:[ng:areq] 参数“TestownerControllerController”不是函数,未定义 http://errors.angularjs.org/1.4.14/ng/areq?p0=TestownerControllerController&p1=not%20aNaNunction%2C %20得到%20未定义

这是我的控制器代码

(function() {
  'use strict';

  angular.module('users').controller('TestownerControllerController', TestownerControllerController);

  TestownerControllerController.$inject = ['$scope'];

  function TestownerControllerController($scope) {
    var vm = this;

    // Testowner controller controller logic
    // ...

    init();

    function init() {
    }
  }
})();

标签: angularjsmean-stack

解决方案


在您的情况下,您错过[]了定义用户应用程序的位置angular.module('users')...

[]: 它是必需的,我们用它来注入其他模块。

你也可以像这样在你的应用程序中设置一个配置:

app.config(["$controllerProvider", "$compileProvider", "$filterProvider", "$provide", function ($stateProvider, configs, $controllerProvider, $compileProvider, $filterProvider, $provide) {
app.controller = $controllerProvider.register;
app.directive = $compileProvider.register;
app.filter = $filterProvider.register;
app.factory = $provide.factory;
app.service = $provide.service;
app.constant = $provide.constant;
}]);

此配置可帮助您注册具有其他依赖项的模块。

//our main app
var app = angular.module('users', [])

//our controller
function testController($scope) {
    function init() {
        //somthing
    }
    init();
}

testController.$inject = ['$scope'];
app.controller('testController', testController);

推荐阅读