骨干路由器,视图和模型合作

Posted

技术标签:

【中文标题】骨干路由器,视图和模型合作【英文标题】:Backbone router, view & model cooperation 【发布时间】:2015-11-16 10:55:14 【问题描述】:

我有一个包含一些按钮的视图。当该视图被激活时,它应该采用一些 URL 参数(在我的情况下 - 站点 ID)并将其设置为按钮属性“data-site_id”。应用程序中也有一个路由器。但我不知道如何以最好的方式实现它。到目前为止,我看到了 3 个假设的解决方案:

    从 URL 哈希中提取站点 ID。 URL是由这样的模式构建的:

    "sites/edit/:id(/:tab)": "editSite",

问题是——我可以在这里使用路由器本身(如果是,那么如何?)或者不能,并且应该用常见的 JS 方式解析它?当然,路由器和视图是两个不同的对象,位于不同的文件/范围内。

    将 site_id 保存在模型中。但我不确定如何从路由器存储它。我想我可以创建一个模型实例,将其设置为路由器范围下的变量,然后像往常一样对待它,如下所示:
(function(app, $, config, _) 

    var Model = new app.modelName();

    var Router = app.Router = Backbone.Router.extend(
        routes: 
            "": "start",
        //....
        "sites/edit/:id(/:tab)": "editSite",
        //...
    ,
    //....

    editSite: function(id, tab)
        Model.set('site_id', id);
    

  //.... 
)(window.Application, jQuery, window.chatConfig, _);

之后我可以随时从模型中提取站点 ID

    将 data-site_id 属性分配给仅来自路由器的按钮。但这看起来不是最佳做法,对吧?

那么你的建议是什么?

【问题讨论】:

【参考方案1】:

您建议的第二个解决方案最有意义,然后您可以实例化您的视图,将该模型传递给构造函数。

见http://backbonejs.org/#View-constructor

【讨论】:

以上是关于骨干路由器,视图和模型合作的主要内容,如果未能解决你的问题,请参考以下文章

OSPF多区域配置;骨干区域与非骨干区域;ABR边界路由器;LSA和SPF算法

大规模网络路由配置及分析

路由器和交换机有什么区别

非骨干区域通过虚链路穿越非骨干区域连接骨干区域实现互联互通

OSPF多个区域连通

路由基础之OSPF虚链路