我在我的 Ember 应用程序中创建了一个带有一些新闻的滑动面板;我希望将面板的状态(打开或关闭)保存在 URL 中;
例如,当我在页面上时,我希望这样:
domain.com/home
我打开面板,网址变成了
domain.com/home/panel
(或类似的东西)并且面板模板在面板插座中呈现(将主模板保留在主插座中)
这可能吗?
我在我的 Ember 应用程序中创建了一个带有一些新闻的滑动面板;我希望将面板的状态(打开或关闭)保存在 URL 中;
例如,当我在页面上时,我希望这样:
domain.com/home
我打开面板,网址变成了
domain.com/home/panel
(或类似的东西)并且面板模板在面板插座中呈现(将主模板保留在主插座中)
这可能吗?
最简洁的答案是不。
长答案在我的回答中:Ember.js: Howto create routes that only execute code
真正的问题是route
住在哪里?如果它位于根目录,当您切换它的可见状态时,您将不得不转换路由。然后会留下任何更深的路线,然后去那条路线。
App.Router.map(function() {
this.route('slideOut', {path:':is_visible'});
this.resource('foo', function() {
this.resource('foo.bar', { path: '/bar' }, function() {
this.route('baz'); // This will be foo.bar.baz
});
});
});
现在您可能想知道,为什么我不能只更新 slideOut 模型上的 is_visible 属性(如果它是顶级资源)。问题是,更新模型上的 id 不会更新 url。它仅在过渡期间更新。