1

我已经打开了一个主题并将其删除,因为没有正确形成问题。若带来不便请谅解。

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

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

如果我直接显示数组,当我单击详细信息时,数组仍然存在。如果我使用 {{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 文件时,该数据会显示在那里吗?

再次感谢您的支持。

4

1 回答 1

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

于 2013-08-11T23:42:30.817 回答