如何使用backbone.js路由器切换视图?

 天蝎樱花西街1992 发布于 2023-01-20 03:04

就使用骨干路由器和骨干网中的渲染视图而言,这更像是一个概念性问题.

为了一个例子(我正在构建以学习这个)我有一个基本的CRUD应用程序的联系人,创建表单,所有联系人列表,联系人单一视图和编辑表单.

为了简单起见,我会说我只想一次看到其中一件事.显然用jQuery显示和隐藏它们将是微不足道的,但那不是我追求的.

我有两个想法,

1)从我的路由器触发自定义事件,删除所有视图并发送可在所有视图中侦听的事件(触发close方法)和主App视图,然后实例化特定视图 - 即:

App.Router = Backbone.Router.extend({
    routes: {
        '' : 'index',
        'addnew' : 'addNew',
        'contacts/:id' : 'singleContact',
        'contacts/:id/edit' : 'editContact'
    },

    index: function(){

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:index');
    },

    addNew: function() {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:addNew');
    },

    singleContact: function(id) {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:singleContact', id);
    },

    editContact: function(id) {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:editContact', id);
    },

});

(nb:vent正在扩展骨干事件obj所以我可以发布/ sub)

2)或将/可能/我应该发送关闭所有事件并在路由器中创建视图的实例?

注意我正在寻求实现这一点,而不是钻研其他库或框架,如木偶等.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有