【问题标题】:EmberJS Routers and Nested ViewsEmberJS 路由器和嵌套视图
【发布时间】:2013-02-11 14:16:56
【问题描述】:

我正在构建一个包含几层子视图的应用程序,但我对如何构建我的路由器感到困惑。我可以将平面视图全部自动替换到最上面的 {{outlet}} 中,但现在我的子视图将拥有自己的子视图。

是否有新的(pre4)EmberJS 路由器处理子视图树的示例? Router Guide 引入了“资源”的概念,但我不知道那是什么,也不知道它是否对我有帮助。

谢谢!

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    这里有一个关于如何在 Ember 中使用资源方法的示例。这个想法是将逻辑上适合的路由组合在一起。如果你想描述一个交互,比如说产品,你想列出、创建、编辑和删除产品。那么你的路线应该被定义为

    APP.Router.map(function(match) {
      this.resource("products", function(){
        this.route('new');
        this.route('edit',{path:'/edit/:id'});
        this.route('delete',{path:'/delete/:id'});
      });  
    });
    

    然后你就可以通过下面的url与相关视图进行交互了

    /#/products
    /#/products/new
    /#/products/edit/1
    /#/products/delete/1
    

    在某种程度上,这将帮助您根据状态和子状态来描述您的应用程序。

    【讨论】:

    • 这绝对有帮助。谢谢。
    • 所以跟进路由器。如果我的应用程序有一个传统的选项卡视图“A”、“B”和“C”怎么办。在“A”下,我有标签“X”、“Y”和“Z”。路线看起来如何?我会在“A”里面有一个“{{outlet}}”吗?
    • 您可以使用具有不同名称的不同插座,即命名插座,当您渲染模板时,您可以决定要填充哪个插座。更多详情请查看emberjs.com/guides/routing/rendering-a-template
    • 哦,太好了,我可以在路由中指定一个命名的出口。我错过了。这一切都开始变得有意义了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多