5

我是 Angular.js 的新手,并试图让路由正常工作,但在我的应用程序中,第二条波纹管路由没有调用,listController所以我没有取回数据。

我经历了许多工作示例,但似乎无法弄清楚为什么这在我的应用程序中不起作用?我取回了模板,/Categories/SixGrid但如前所述,控制器似乎没有被调用。有什么明显的我没有做错吗?或者任何人都可以分享他们为什么这可能不起作用的知识吗?

更新代码:

angular.module('App', ['App.Controller']).
    config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/', { templateUrl: '/Home/Splash' });
        $routeProvider.when('/Categories/List/:slug', { templateUrl: '/Categories/SixGrid', controller:'listController' });
    }]);

angular.module('App.Controller', [])
    .controller("listController", function ($scope, $http) {
        $http.get('../../api/cat/' + $routeParams.slug).success(function (data) {
                    $scope.products = data;
                });
});
4

1 回答 1

5

尝试将控制器名称用引号括起来:

$routeProvider.when('/Categories/List/:slug', {
    templateUrl: '/Categories/SixGrid',
    controller: 'listController'
});

同样好的做法是通过这种方式定义控制器(因为全局范围保持干净):

angular.module('App').controller("listController", function () {
    //controllerCode
});
于 2013-04-02T13:00:32.487 回答