Emberjs - 显示数据

时间:2013-08-11 21:30:41

标签: ember.js

我已经打开了一个主题并将其删除,因为没有形成正确的问题。对于给您带来的任何不便,我们深表歉意。

所以,问题如下。我有一个主页面,应显示FIXTURES中定义的所有对象。现在,据我了解emberjs和把手,主页面可以有一个{{outlet}}标签,根据网址显示内容。

我的问题是我有一个屏幕,默认情况下会显示数组,点击后会显示详细信息“页面”。所以,我必须使用{{outlet}},因为我有两个“页面”或者更确切地说,“router.maps”:main和details(请参阅下面的代码)。

如果我直接显示数组,当我点击详细信息时,数组仍然存在。如果我使用{{outlet}},我必须默认将用户重定向到主页,就像我做的那样:

    App.Router.map(function(){
        this.resource("main");
        this.resource("details", {path: ':image_id'});
    });

    App.ApplicationRoute = Ember.Route.extend({
          redirect: function() {
            return this.transitionTo('main');
          }
        });

    App.MainRoute = Ember.Route.extend({
        model: function(){
            return App.Images.find();
        }
    });

在这种情况下,什么是完美的解决方案?

此外,DS.Store是否像以下一样工作sessionStorage的?如果我在insert.html上“持久”数据然后转到view.html,那么当重新加载.js文件时,是否会显示那些数据?

再次感谢您的支持。

1 个答案:

答案 0 :(得分:1)

  

在这种情况下,什么是完美的解决方案?

我建议为主路线设置路径“/”而不是重定向。

App.Router.map(function(){
  this.resource("main", {path: '/'});
  this.resource("details", {path: ':image_id'});
});
App.MainRoute = Ember.Route.extend({
  model: function(){
    return App.Images.find();
  }
});
  

此外,DS.Store是否像以下一样工作sessionStorage的?如果我在insert.html上“持久”数据然后转到view.html,那么当重新加载.js文件时,是否会显示那些数据?

没有。将DS.Store视为内存缓存,只要您的ember应用程序正在运行,它就可用,但在刷新浏览器时会持续很多。 Ember Data支持许多不同的适配器,如果您想要本地存储,可以尝试localstorage-adapter