3
我有一個需要訪問url參數的控制器。但是,我無法弄清楚如何訪問參數。以下是我迄今爲止:如何訪問控制器內部的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);
我缺少什麼?
$ routeParams.id應該工作。根據你的實現,你可以傳遞這樣的參數/ customer?id = 58,然後CustomerCtrl可以看到參數。 – zsong
我傳遞的參數是這樣的:''
customer_id不是查詢參數,它是url的一部分,請嘗試
回答
我花了整整一天,試圖找到一個角度的解決方案,看似簡單,常見的問題混淆了我自己。大多數時候,你可能已經想通了這一點,但解決的辦法是隻使用普通的舊的javascript:
那麼簡單,但我覺得不從一開始就想着這個白癡。
來源
2013-07-17 00:16:20
它實際上比你想象的還要容易。您使用的是使用狀態而不是默認路由器的ui路由器(https://github.com/angular-ui/ui-router)。
應該是:
則:
來源
2013-07-17 00:35:09
這是行不通的。 –
這確實有效,好吧。嘗試類似於:'myApp.controller('myController',['$ scope','$ stateParams','$ state',function($ scope,$ stateParams,$ state){'。 stateParams.customer_id'等於來自狀態路由器的':customer_id'。 –
相關問題