Ember js - Невозможно сгенерировать URL с динамическими c сегментами, используя метод urlFor. - PullRequest
1 голос
/ 28 января 2020

Я могу создать URL, используя urlFor(), когда я нахожусь в маршруте /1/1/orders. но я не могу сгенерировать URL в маршруте приложения.

Так что этот код не работает:

var routeName = "scope.purchase.invoice";
var dynamicSegments = { scopeId: 1, scopeData: 2, invoiceId: 3, pageSize: 20, pageIndex: 1 };
var url = this.router.urlFor(routeName, 1, 2, 3, 10, 1);
console.log("inside generated url", url);

Для этого router.js:

this.route("scope", { path: '/:scopeId/:scopeData' }, function(){
  this.route("purchase", function(){
    this.route("invoice", { path: '/:invoiceId/:pageIndex/:pageSize' });
  })
});

вот ссылка угасающий тиддл

1 Ответ

2 голосов
/ 29 января 2020

Ваша проблема в том, что urlFor() принимает модели / динамические c сегменты как отдельные упорядоченные параметры, а не объект с ключами и значениями. .

Так сделайте это:

const url = this.router.urlFor(routeName, dynamicSegments.scopeId, dynamicSegments.scropeData, dynamicSegments.invoiceId, dynamicSegments.pageSize, dynamicSegments.pageIndex);
...