私は$location.path()コントローラーで使用しようとしているだけでなく、カスタム変数をパラメーターとして渡しています。だからそれは私が推測するこのようなものになるでしょう:
$scope.parameter = 'Foo';
$location.path('/myURL/' + $scope.parameter);
しかし、それはうまくいきません。これがAngularでどのように行われるべきか知っている人はいますか?
回答:
パラメータを追加するには、$location.search()メソッドを使用する必要があります。
$location.path('/myURL/').search({param: 'value'});
$locationメソッドは連鎖可能です。
この農産物:
/myURL/?param=value
$location.path('/myURL').search({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;
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
これにより、ブラケット内にパラメーターを手動で入力する必要がなくなります。