• backbonejs学习之路一


    由于项目的关系,需要用到基于MVC的JavaScript Web富应用开发,backbonejs是移动端开发的一个不错选择。我将记录我的backbonejs的学习之路。

    关于backbonejs是用来干嘛的,我就不再做太多的赘述了。

    我先学的是backbonejs的Model层。Backbone models 包含为实现应用交互的数据同时也包含了业务逻辑。比如说我们可以用一个model去代表一张照片的概念,包含了一张照片所拥有的各种属性。不多说,直接上代码吧.

     1 <script type="text/javascript">

     2         $(function(){
     3             
     4             var Photo = Backbone.Model.extend({
     5                 defaults: {
     6                     src: 'placeholder.jpg',
     7                     title: 'an image placeholder',
     8                     coordinates: [0,0]
     9                 },
    10                 //如果attribs.src == undefined,验证不通过
    11                 validate: function(attribs){
    12                     //underfined与null的区别,null只的是有传参数,参数为"" 而undefined指连参数都没有传
    13                     if(attribs.src == undefined){
    14                         return "Remember to set a source for your image!";
    15                     }
    16                 },
    17                 initialize: function(){
    18                     //在Photo对象的src属性上的change事件上绑定方法
    19                     this.on("change:src", function(){
    20                         var src = this.get("src");
    21                         console.log('Image source updated to ' + src);
    22                     });
    23                     this.on("error", function(model, error){
    24                         console.log(error);
    25                     });
    26                 },
    27                 changeSrc: function( source ){
    28                     //getter setter方法,其他参数没有发生改变还是defaults的值
    29                     this.set({ src: source });
    30                 }
    31                 });//实例化对象
    32                 var somePhoto = new Photo({ src: "test.jpg", title:"testing"});
    33                 somePhoto.changeSrc("magic.jpg"); // which triggers "change:src" and logs an update message to the console.
    34         });

    35     </script>

    其实刚刚开始看这些代码的时候我都不太习惯,以前都是用jQuery写的js代码,写起来自然没有那么复杂,个人感觉对js面向对象的概念原理也不需要太多就可以上路了。写几个不错的交互就感觉o啦了。backbonejs对js的要求比较高,里面用到很多的钩子函数(callback回调函数)。

    Backbone model提供很多的内置方法比如initialize()顾名思义在创建一个model对象时调用的构造函数,validate()判断model的每个属性值赋值是否合法,当然了判定规则还是由你定义的。

    好了,个人感觉model层还是蛮简单的。。。。

    对了,要让这段代码执行起来,要应用backbonejs、jQuery的类库,同时backbonejs重度依赖underscorejs

    1 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    2     <script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>

    3     <script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>     


    ps:博客园的code编辑器真心不给力 

  • 相关阅读:
    访问控制模型+强制访问控制
    防火墙体系结构
    信息安全工程师手记
    关于PHPSESSIONID的一些发现
    中级测评师10-物联网
    WAPI学习记录
    1. Jenkins 入门使用
    Springboot druid监控配置
    Springboot 添加数据源报错
    mysql function 查询子级机构
  • 原文地址:https://www.cnblogs.com/itmangelihai/p/2789665.html
Copyright © 2020-2023  润新知