我似乎无法使用Angular.JS为我的控制器工作

时间:2014-03-05 00:56:48

标签: angularjs routing angular-routing

当我将ng-controller属性用于无模板代码时,我的控制器工作,并且路由我的模板加载,而不是控制器。我似乎无法找到我错过的东西。

错误讯息:

Error: [ng:areq] Argument 'OpListCtrl' is not a function, got undefined

这是我的应用和路线js。 OpLists var是一个服务器提交的var,所以它在页面加载时会填充。

(function () {
    'use strict';

    var appid = 'app';
    var app = angular.module(appid, [

        'ngAnimate',        // animations
        'ngRoute',          // routing

    ]);

    app.config(['$routeProvider', buildRoute]);

    function buildRoute($routeProvider) {
        $routeProvider
        .when('/op',{
            templateUrl: OpLists, //'app/op/Lists.html',
            controller: 'OpListCtrl',
        })
        .otherwise({
            redirectTo: '/op'
        })
    }

    //Make sure the template (OpList) is correct.
    console.log("SetRoute: " + OpLists);

})();

这是我的控制器

(function () {
    'use strict';

    var controllerId = 'opListCtrl';

    // TODO: replace app with your module name
    angular.module('app').controller(controllerId, ['$scope', '$http', CreateOpListCtrl]);

    function CreateOpListCtrl($scope, $http) {
        $scope.title = controllerId;

        $http.get(ApiOpList, { method: 'GET', responseType: 'json' })
            .success(function (data) { $scope.OpLists = data; });

   }

})();

这个目录是

--app
----运算

如果不是因为我的控制器在没有路由的情况下工作,我会专注于控制器。由于路由正在加载我的模板,我很困惑它是如何路由的。所以我公然错过了一些我看不到的东西..

1 个答案:

答案 0 :(得分:0)

KayakDave发现了我的错字。我在那里花了几个小时。