как достичь this.resource () с новым this.route () в ember для сильно вложенных маршрутов? - PullRequest
0 голосов
/ 02 ноября 2018

im в процессе обновления ember1.x до 3.x, и у меня есть проблема с маршрутизатором, где он использовал this.resource для вложенных маршрутов, и теперь он устарел и изменился на this.route

но когда дело доходит до вложенного маршрута, он больше не работает если я еще объясню, скажем

this.resource( 'parent1', { path: '/' }, function() {

    this.route( 'someroute1', { path: '/' } );
    this.route( 'someroute2', { path: '/someroute2' } );


    this.resource( 'parent11', { path: '/app' }, function() {

      this.route( 'someroute11', { path: '/' } );
      this.route( 'someroute12', { path: '/someroute12' } );

      this.resource( 'parent111', { path: '/:paramid' }, function() {
      this.route( 'index', { path: '/' } );
      this.route( 'someroutewanttogo', { path: '/pathrouteiwanttogo' } 
  );
});

Это было раньше, и я направлялся к последнему маршруту как

this.transitionTo('parent111', id)

это сработало отлично.

затем я изменил ресурс на маршрут, как показано ниже

this.route( 'parent1', { path: '/' }, function() {

    this.route( 'someroute1', { path: '/' } );
    this.route( 'someroute2', { path: '/someroute2' } );


    this.route( 'parent11', { path: '/app' }, function() {

      this.route( 'someroute11', { path: '/' } );
      this.route( 'someroute12', { path: '/someroute12' } );

      this.route( 'parent111', { path: '/:paramid' }, function() {
      this.route( 'index', { path: '/' } );
      this.route( 'someroutewanttogo', { path: '/pathrouteiwanttogo' } 
  );
});

тогда маршрут не был найден в маршруте transitionTo (), поэтому я попытался вызвать

this.transitionTo ('parent1.parent11.parent111', id);

но это потеряно нигде, так как не запускается контроллер parent111 или дочерних элементов.

что я здесь не так сделал?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

проблема была, хотя я изменил ресурс на маршрут, я не изменил файловую систему и файлы в соответствии с тем, какой маршрут определен. поэтому мне пришлось изменить все файлы в соответствии со структурой маршрута, которая определена. , которые решают мою проблему на маршруте, не загружающемся для ember 3.5

0 голосов
/ 02 ноября 2018

Вы можете вызвать route с параметром {resetNamespace: true} вместо использования resource, который описан здесь .

Так что ваш router будет выглядеть так:

this.route( 'parent1', {resetNamespace: true}, function() {

    this.route( 'someroute1', { path: '/' } );
    this.route( 'someroute2', { path: '/someroute2' } );

    this.route( 'parent11', {resetNamespace: true}, function() {

        this.route( 'someroute11', { path: '/' } );
        this.route( 'someroute12', { path: '/someroute12' } );

        this.route( 'parent111', {resetNamespace: true}, function() {
              this.route( 'index', { path: '/' } );
              this.route( 'someroutewanttogo', { path: '/pathrouteiwanttogo' });
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...