Ember.js 根据I';我已经到页面了

Ember.js 根据I';我已经到页面了,ember.js,Ember.js,我有一些奇怪的行为,我想不出原因 这是我的路由器: App.Router.map(function() { this.resource('mapPieceSets', { path: '/map-pieces' }, function () { this.resource('mapPieceSet', { path: '/:mapPieceSet_id' }, function () { this.resource('mapPiece', { pa

我有一些奇怪的行为,我想不出原因

这是我的路由器:

App.Router.map(function() {
    this.resource('mapPieceSets', { path: '/map-pieces' }, function () {
        this.resource('mapPieceSet', { path: '/:mapPieceSet_id' }, function () {
            this.resource('mapPiece', { path: '/:mapPiece_id' });
        });
    });
});
我从主页
#/
重新加载应用程序,然后向下导航到
地图块
路径,我会收到请求的这些URL:

  • [Domain]/api/mappiesets/
  • [Domain]/api/mappices/1/
  • [Domain]/api/mappices/2/
而且一切正常(
mapPieceSets
返回一个
mapPieceSets
列表,其中有一个
mapPiece
列表)

但是,如果我在
地图块
路由页面上重新加载,则会得到以下URL:

  • [Domain]/api/mappiesets/
  • [Domain]/api/mappiesets/?mappiesets\u id=1
  • [Domain]/api/mappages/?mappages\u id=1
因此,从
/:id=
切换到
?id=
,这对我的端点不起作用(这是我需要解决的一个次要问题),但只是想知道为什么URL会更改它们请求的内容,以及当整个对象在
mappiesets/


(如果您需要我的应用程序中的任何其他代码片段,请告诉我,我可以将它们放入)

这是一个相当常见的混淆。当你在应用程序中四处导航时,你通常会使用一个指向的
链接,然后告诉ember在访问路线时使用指定的型号。刷新页面时,Ember必须使用url
/apimapPieceSets/3/2
预测模型。此时,它将转到每个路径
MapPieceSetRoute
MapPieceSetRoute
,和
MapPieceSetRoute
,并点击通过任何相关参数的每个模型挂钩。因此,您需要告诉Ember如何操作,即如何正确加载
mapPieceSet
,以及
mapPiece
。您需要为这两个设置一个模型挂钩

App.MapPieceSetsRoute = Em.Route.extend({
  // I don't know if you're using Ember Data, but I'm going to assume you are
  model: function(params){
    return this.store.find('mapPieceSet', params.mapPieceSet_id);
  }
});
从您所说的,该模型似乎已经从
mapPieceSets
的客户端可用。在这种情况下,您可以使用
modelFor
方法获取父级管线的模型并获取您的模型

App.MapPieceSetsRoute = Em.Route.extend({
  // I don't know if you're using Ember Data, but I'm going to assume you are
  model: function(params){
    return this.modelFor('mapPieceSets').get('properyWithMapPieces').findBy('id', params.mapPieceSet_id);
  }
});

啊,是的,我忘了尝试
modelFor
谢谢!是的,你是对的,我使用的是余烬数据,谢谢!