我是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;
});
});
答案 0 :(得分:5)
尝试将控制器名称包装在引号中:
$routeProvider.when('/Categories/List/:slug', {
templateUrl: '/Categories/SixGrid',
controller: 'listController'
});
同样好的做法是通过这种方式定义控制器(因为全局范围保持干净):
angular.module('App').controller("listController", function () {
//controllerCode
});