2012-09-02 51 views
0

我正在使用Phonegap + Zepto + Backbone爲Blackberry OS5開發應用程序。爲了做到這一點,我一直使用Backbone表單來處理子引擎,但由於OS5在jQuery版本高於1.4.4時出現問題,我轉移到了Zepto,但BackboneForms上的render方法停止工作,任何人都可以幫助我它?Backbone-forms + Zepto無法呈現

這也正是它打破了,全部分代碼請點擊這裏https://github.com/powmedia/backbone-forms

render: function() { 
    var self = this, 
     options = this.options, 
     template = Form.templates[options.template]; 

    //Create el from template - HERE IT BREAKS 
    var $form = $(template({ 
    fieldsets: '<b class="bbf-tmp"></b>' 
    })); 

    //Render fieldsets 
    var $fieldsetContainer = $('.bbf-tmp', $form); 

    _.each(options.fieldsets, function(fieldset) { 
    $fieldsetContainer.append(self.renderFieldset(fieldset)); 
    }); 

    $fieldsetContainer.children().unwrap(); 

    //Set the template contents as the main element; removes the wrapper element 
    this.setElement($form); 

    if (this.hasFocus) this.trigger('blur', this); 

    return this; 
}, 

提前感謝!

回答

3

Zepto,骨幹和下劃線並不正式支持BB5.0瀏覽器--BB5.0不同於帶有webkit的BB6.0以上版本。除此之外,根據我的經驗,我可以說BB5.0中的javascript支持並不是很好。所以這件事做起來有點像在大海撈針。

一個可能的罪魁禍首是下劃線,這是我看到你用於你的模板。 Underscore似乎無法處理BB5.0(任何循環或if語句)上的任何類型的邏輯模板。因此,如果您想在模板中執行比基本數據綁定更復雜的任何操作,那麼您將需要修改下劃線或執行自己的模板解決方案。

不知道這是你想要的那種答案,但希望它有幫助。 。 。

編輯:

重新下劃線模板問題:似乎有與BB OS5.0本機的foreach執行的問題。如果有的話,Underscore會調用這個本地的foreach。在下劃線中註釋掉以下行修正了我們在OS5.0中的渲染集合:

/* if (nativeForEach && obj.forEach === nativeForEach) { 
    obj.forEach(iterator, context); 
} else */ 

希望有所幫助。