backbone Model

requirejs.config({
    baseUrl: 'js/lib',
    paths:{
        app: '../app'
    }
})
// Start the main app logic.
//requirejs===define===require源碼:var requirejs, require, define;
requirejs(['jquery', 'underscore', 'backbone_1.2.3'],
    function   ($,        _,   Backbone) {
        var Book = Backbone.Model.extend(
            {
                defaults:{
                    name:"unknnown",
                    author:"unknown&",
                    price:0
                },
                validate:function(data){
                    if(data.price>100){
                        return "大於100了";
                    }
                }
            }

        );
        /*function Book(){
            this.defaults = 上面那個
        }*/
        var javabook = new Book({
            name:"thinking in java"
        })
        // 監聽模型"change"事件
        javabook.on('change', function(model) {
            //console.log('change事件被觸發');
        });
        // 監聽"change:price"事件
        /*previous()方法接收一個屬性名,並返回該屬性在修改以前的狀態;
         previousAttributes()方法返回一個對象,該對象包含上一個狀態的全部數據。
        須要注意的是,previous()和previousAttributes()方法只能在數據修改過程當中調用
        (即在模型的change事件和屬性事件中調用)*/
        javabook.on('change:price', function(model, value) {
            var price = model.previous('price');
            if(price < value) {
                console.log('價格上漲了' + (value - price) + '元.');
            } else if(price > value) {
                console.log('價格降低了' + (value - price) + '元.');
            } else {
                console.log('價格沒有發生變化.');
            }
        });
        // 監聽error事件,當驗證失敗時觸發
        javabook.on('invalid', function(model, error) {
            console.log(error);
        });
        // 經過set方法設置模型數據
        javabook.set('name', 'Java7入門經典');
        javabook.set('author', 'Ivor Horton');
        javabook.set('price', 883,{
            validate:true
            //silent : true不校驗
        });
        /*unset()方法用於刪除對象中指定的屬性和數據
        clear()方法用於刪除模型中全部的屬性和數據*/
        javabook.clear();
        var name = javabook.get("name");
        var author = javabook.escape("author");
        console.log(javabook);
        console.log(name);
        console.log(author);
    }
);

http://yujianshenbing.iteye.com/blog/1748571java

相關文章
相關標籤/搜索