Backbone

View

Backbone 的 Views 用来接收用户的操作和修改 Model 的数据 ,另外通过 render 来展示数据。实际上,在MVC框架中,它更像是Controller。

View有两个作用:

  1. 监听事件
  2. 展示数据

下面简单的创建一个View:

var GameView= Backbone.View.extend({  
    el:'#menuTree',
    tagName : "div",
    className: "game",
    render : function() {  
        this.el.innerHTML = this.model.get('name');  
        //Or the jQuery way  
        $(this.el).html(this.model.get('name'));  
    },
    events: {  
        "dblclick"                : "open",
        "click .icon.doc"         : "select",
    },
    open: function() {  
        window.open(this.model.get("viewer_url"));  
    },  

    select: function() {  
        this.model.set({selected: true});  
    }

    });  

events部分是监听的事件,下面的open、select方法是事件对应的处理。

AppView = Backbone.View.extend({});
var appView=new AppView();

所以此处的this指向我们new的实例(例如var appView=new AppView(),则this指向appView)

new AppView进行的操作其实是Backbone.Model.apply(this,arguments) ,也就是说我们实例化appView的时候其实是调用Backbone.Model

Router

两种路由取值的方法

  <!DOCTYPE HTML>
  <html lang="en-US">
  <head>
      <meta charset="UTF-8">
      <title>backbone</title>
      <script src="app/jquery-1.8.1.min.js"></script>
      <script src="app/underscore-min.js"></script>
      <script src="app/backbone-min.js"></script>
      <script>
     (function($) {
         var AppRouter = Backbone.Router.extend({
             routes: {
                 "/posts/:id": "getPost",
                 "*actions": "defaultRoute"
             },

             //匹配/posts/:id
             getPost: function(id) {
                 console.log(id);
             },

             //匹配所有url
             defaultRoute: function(actions) {
                 if (actions) {
                     console.log(actions);
                 }
             }
         });

         var app_router = new AppRouter;
         Backbone.history.start();
     })(jQuery);
     </script>
 </head>
 <body>
     <p><a href="#actions">testActions</a></p>
     <p><a href="#/posts/120">Post 120</a></p>
 </body>
 </html>

javascript引用的顺序:underscore-min.js要在backbone-min.js前面,underscore是backbone依赖的唯一类库,extend是underscore的function,引用顺序错了router是无法创建的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值