【问题标题】:nested router , model not found error嵌套路由器,找不到模型错误
【发布时间】:2014-07-23 22:04:40
【问题描述】:

我对 ember 还很陌生,正在寻找最好的方法来编写我的新应用程序。

这就是我想要创建的:

相册

  • 首先您会看到所有专辑(图库)
  • 点击相册会显示 相关大拇指
  • 点击拇指显示相关直径

这是限制:

我想要可以通过 url 直接导航的图库、拇指和直径

可导航的网址:

这是设置路由器:

bvmEmber.Router.map(function () {
      this.resource('gallery', {path : '/'}, function(){
        this.resource('thumbs', {path : '/thumbs/:gallery_id'}, function(){
            this.resource('dia', {path : '/dia/:dia_id'});
        });
      });
  this.resource('blog', {path : '/blog'});
  this.resource('contact', {path : '/contact'});
});

常见问题:

  • dia 模板无法加载模板中所需的数据
  • 发生错误:'加载路由时出错:错误:找不到'dia'的模型'

代码示例:

http://jsbin.com/kehatiho/1/edit

我的问题:

  1. 这是我正在构建的应用程序的良好 ember 近似吗?
  2. 为什么我在模型上找不到“dia”的错误?
  3. 在 Dia 模板中,我想显示所选 dia 的标题、名称、src。我怎样才能找回这个?
  4. 为什么我不能在 diarouter 中执行 setupController?
  5. 为什么diaController中的属性需求没有任何影响?
  6. Ember 可以进行近似吗??

有人知道吗,我真的很想了解我的问题吗?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您需要为模型对象创建 DS.Model 类。您为 Gallery 执行此操作,但我在您的代码中的任何地方都看不到 bvmEmber.Dia。我也没有看到bvmEmber.Thumb。因此,您需要创建这些模型类。

    如果您想要描述的 URL,您需要像这样进行路由器映射:

    bvmEmber.Router.map(function () {
        this.resource('gallery', {path : '/'}, function() {
          this.resource('thumbs', {path : 'thumbs/:gallery_id'}, function(){
              this.resource('dia', {path : 'dia/:dia_id'});
          });
        });
        this.resource('blog', {path : '/blog'});
        this.resource('contact', {path : '/contact'});
    });
    

    请注意,我从您的 path 属性中删除了前导“/”。我建议在您的应用程序中解决这些问题,然后针对您遇到的新问题提出更具体的问题。希望这会有所帮助!

    【讨论】:

    • 谢谢史蒂夫,确实添加了 DS.model 删除了“找不到 dia 模型”错误,太棒了!但是我仍然遇到一个错误,现在说'处理路由时出错:dia 无法读取未定义的属性'id' TypeError:无法读取未定义的属性'id''。但是我没有这个'id'代表的任何clou。谢谢你帮我解决这个问题! (编辑在jsbin.com/kehatiho/1/edit完成)
    • error 'id' 消失了,但我仍然无法在 dia 模板中接收到必要的数据:名称、标题、描述(与 thumb 模板中的相同)
    • 很可能,您没有序列化来自 REST 资源的传入对象。您可能希望在您的ApplicationSerializer 中实现extractArrayextractSingle。至少实现它们并调试payload 对象。在序列化程序中调用 this._super() 之前,您可以进行任何需要的清理工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2020-05-16
    • 2017-02-03
    相关资源
    最近更新 更多