3

URL パラメーターにアクセスする必要があるコントローラーがあります。ただし、パラメーターにアクセスする方法がわかりません。これが私がこれまでに持っているものです:

コントローラ:

function CustomerCtrl($scope, $http, $routeParams, $route) {

// var customer_id = $routeParams.id; // this doesn't work
// var customer_id = $route.current.params.id; // this doesn't work
var customer_id = '58'; // this clearly works

$http({
    url: 'customers/'+customer_id+'/info',
    method: "POST"
})
.success(function (data, status, headers, config) { $scope.name = data; })
.error(function (data, status, headers, config) { $scope.status = status; });
}

アプリ:

var customer = {
    name: 'customer',
    url: '/customer',
    abstract: true,
    templateUrl: 'views/customer/customer.html',
    controller: 'CustomerCtrl'
};

var customer_info = {
    name: 'customer.info',
    parent: customer,
    url: '/:id/info'
    views: {
        view1: { templateUrl: "views/customer/view1.html" },
        view2: { templateUrl: "views/customer/view2.html" }
    }
};

$stateProvider
    .state(customer)
    .state(customer_info);

私は何が欠けていますか?

4

2 に答える 2

1

実際には、思ったよりも簡単です。デフォルト ルーターの代わりに状態を使用する ui-router ( https://github.com/angular-ui/ui-router ) を使用しています。

function CustomerCtrl($scope, $http, $routeParams, $route) {

次のようにする必要があります。

function CustomerCtrl($scope, $http, $stateParams, $state) {

それから:

var customer_id = $stateParams.id; 
于 2013-07-17T00:35:09.187 に答える