zoukankan      html  css  js  c++  java
  • Backbone中父子view之间的值传递

           backbone中,使用最多的莫过于在view中进行操作,如模板的渲染以及事件函数的定义。为了提高代码的可维护性,一般地我们会写多个视图即view,将界面按照功能的不同进行模块化划分,模块与view一一对应。

           首先,我们会定义一个父view,在view中控制不同子view的渲染,子view之间尽量不产生联系。这样,代码之间的耦合度会降低很多,模块的功能明确化,同时降低了开发的难度。笔者最近在项目中遇到父子view传值问题,学习到了一个知识点,比较简单易懂。主要想分享两个内容:1.父子view是如何传值的。2.父子view传值要注意什么。以我实际的项目为例进行说明。

    一、如何传值

           项目中利用require.js按需加载js文件,大大地节约了资源。首先在global.js中申明子view的路径,方便在父view中进行引用。熟悉require.js的读者都知道,require.js是通过define进行函数的定义以及相关依赖模块的引入,这里不必细说,假设参数定义为childrenView。在父view中new一个childrenView对象,这样我们通过自定义事件进行操作就行。此时new的对象包含view的render方法等。如果在new childrenView(参数1)时,参数1可以为空,此时父子view之间没有值传递;当参数2存在时,父子view存在值传递,参数1是父view传递给子view的。在子view的initialize(参数2)中可以接收参数1,即参数1和参数2是对等的。

           此外,因为是在父view中new的子view,可以在父view可以对子view进行操作。

    二、细节问题

           通过一我们可以很方便在子view中接收父view的数据,但是这里有个细节问题。我曾在这里困惑好久。参数最好不要传父view,即父view的this或者view默认的事件函数等。因为这样做,参数会将子view默认的事件函数给覆盖,导致子view相同的事件函数失效。简单来讲,如果父子view都存在的,比如render,events或者其他定义相同的值或者是自定义函数不能作为参数传递。

  • 相关阅读:
    java设计模式9.备忘录模式、访问者模式、调停者模式
    java设计模式8.迭代子模式、责任链模式、命令模式
    java设计模式7.策略模式、模板方法模式、观察者模式
    java设计模式5.组合模式、门面模式、享元模式、桥接模式
    java设计模式4.适配器模式、装饰器模式
    第6章 事务管理 6.1 spring事务
    第8章 浏览器对象模型BOM 8.1 window对象
    关于Socket、TCP/IP、HTTP、FTP及网络编程
    GO.Web服务
    git clone 下载慢
  • 原文地址:https://www.cnblogs.com/jiangcheng-langzi/p/7112849.html
Copyright © 2011-2022 走看看