嵌套路由器,模型未找到错误

时间:2014-07-23 22:04:41

标签: ember.js

我很擅长使用并找出最佳编写新应用的可能方法。

这就是我想要创建的内容:

一张photoalbum

  • 首先看到所有相册(图库)
  • 点击相册即可显示 相关的拇指
  • 点击拇指显示相关的dia

这是限制:

我希望画廊,大拇指和dia,可以通过网址直接导航

可导航网址:

这是设置路由器:

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. 这是我正在构建的应用程序的良好余烬近似吗?
  2. 为什么我在模型上找不到'dia'的错误?
  3. 在Dia模板中,我想显示所选dia的标题,名称,src。我怎样才能找回来?
  4. 为什么我不能在diarouter中做setupController?
  5. 为什么diaController中的属性需求没有任何影响?
  6. 我的近似值是否与Ember ??
  7. 相符 有人知道,我真的很想了解我的问题吗?

1 个答案:

答案 0 :(得分:0)

您需要为模型对象创建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属性中删除了前导“/”。我建议您使用您的应用程序解决这些问题,然后针对您遇到的新问题提出更具体的问题。希望这有帮助!