簡體   English   中英

在Alloy模型中重寫get方法

[英]override get method in Alloy model

我試圖覆蓋get:合金模型中的調用,與Backbone非常相似,我寫了這個,但是不起作用

extendModel: function(Model) {      
        _.extend(Model.prototype, {
            // extended functions and properties go here
            get: function (attr) {
                if (attr=='image')
                {
                    return Ti.Utils.base64decode(this['image'])
                }

                    return this[attr];
              }
        });

        return Model;
    },

這是我重寫set和add方法的方式,希望對您有所幫助:

exports.definition = {
    config: {

        adapter: {
            type: "properties",
            collection_name: "careCenter",
            idAttribute : "CareCenterID"
        }
    },      
    extendModel: function(Model) {      
        _.extend(Model.prototype, {
            idAttribute : "CareCenterID"
            // extended functions and properties go here
        });

        return Model;
    },
    extendCollection: function(Collection) {        
        _.extend(Collection.prototype, {
            add : function(attrs, opts){
                var isDuplicated = false;
                if(attrs && attrs.get){
                    isDuplicated = this.any(function(model){
                        return model.get("CareCenterID") === attrs.get("CareCenterID");
                    });
                }
                if(isDuplicated){
                    return false;
                } else {
                    Backbone.Collection.prototype.add.call(this, attrs, opts);
                }
            },
            comparator : function(model){
                return -model.get("state");
            }
        });

        return Collection;
    }
}


extendModel: function(Model) {      
        _.extend(Model.prototype, {
            idAttribute : "RecipientID",
            set : function(attrs, opts){
                if(attrs.Age != null){
                    var age = attrs.Age;
                    var result = "";
                    if(age <= Alloy.CFG.INFANT){
                        result = "infant";
                    } else if(age <= Alloy.CFG.CHILD){
                        result = "child";
                    } else if(age <= Alloy.CFG.TEENAGER){
                        result = "teenager";
                    } else {
                        result = "adult";
                    }
                    attrs.Group = result;
                }

                return Backbone.Model.prototype.set.call(this, attrs, opts);
            }
        });

        return Model;
    },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM