我只是想在我的控制器中使用$location.path()
,但也傳遞一個自定義變量作爲參數。因此,這將是這個樣子我想:
$scope.parameter = 'Foo';
$location.path('/myURL/' + $scope.parameter);
但是,這並不工作。任何人都知道這應該在Angular中完成嗎?
我只是想在我的控制器中使用$location.path()
,但也傳遞一個自定義變量作爲參數。因此,這將是這個樣子我想:
$scope.parameter = 'Foo';
$location.path('/myURL/' + $scope.parameter);
但是,這並不工作。任何人都知道這應該在Angular中完成嗎?
添加參數,你應該使用$location.search()
方法,以便:
$location.path('/myURL/').search({param: 'value'});
$location
方法可鏈接。
此產品:
/myURL/?param=value
的另一種方式來參數添加到URL是:
$location.path('/myURL/'+ param1);
,你可以定義路線myPage.html下:
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/myURL/:param1', {
templateUrl: 'path/myPage.html',
controller: newController
});
}]);
參數然後可以在newController中訪問,如下所示:
var param1= $routeParams.param1;
這個答案是添加查詢參數還是路由屬性? – Phil
例如,如果你需要把你的URL的一個或多個參數:
$location.path('/path').search({foo: 'valueFoo', baz:'valueBaz'})
在您的網址將代表
/path?foo=valueFoo&baz=valueBaz
要獲得PARAMS在另一個控制器:
var urlParams = $location.search();
urlParams.foo will return valueFoo
urlParams.baz will return valueBaz
function pathToSomewhere() {
$stateParams.name= vm.name; //john
$stateParams.phone= vm.phone; //1234
$stateParams.dateOfBirth= getDoB(); //10-10-1990
$location.path("/somewhere/").search($stateParams);
};
這將導致URL
http://middle-of-nowhere.com/#/somewhere/?name=john&phone=1234&dateOfBirth=10-10-1990
這樣你就不必括號內手動輸入了參數
我假設你有$ stateParams在你的控制器注入這個工作。 – FilipeG
檢查拼寫,大寫/小寫及其綁定 –
有沒有什麼辦法,以使該轉換該網址看起來像/ myUrl /值而不是/ myURL /?param = value? – AzzyDude
您可以使用.Path('/ myURL /'+ value)。但它不再被稱爲參數。 –