【问题标题】:Backbone-forms + Zepto fails to renderBackbone-forms + Zepto 无法渲染
【发布时间】:2012-08-27 13:19:01
【问题描述】:

我正在使用 Phonegap + Zepto + Backbone 为 Blackberry OS5 开发应用程序。为了做到这一点,我一直在使用 Backbone-forms 来处理提交,但由于 OS5 的 jQuery 版本高于 1.4.4 存在问题,我搬到了 Zepto,但是 BackboneForms 上的渲染方法停止工作,谁能帮我吗?

这是中断的部分,完整代码请查看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;
},

提前致谢!

【问题讨论】:

    标签: backbone.js zepto


    【解决方案1】:

    Zepto、backbone 和 underscore 不正式支持 BB5.0 浏览器 - BB5.0 在引擎盖下有 mango,而 BB6.0 更高版本有 webkit。除此之外,根据我的经验,我可以说 BB5.0 中的 javascript 支持至少可以说不是很好。所以解决这个问题有点像大海捞针。

    一个可能的罪魁祸首是下划线,这是我看到您用于模板的内容。 Underscore 似乎无法处理 BB5.0 上具有任何逻辑的模板(任何循环或 if 语句)。因此,如果您想在模板中做比基本数据绑定更复杂的事情,您将需要修改下划线或执行您自己的模板解决方案。

    不确定这是否是您想要的答案,但希望对您有所帮助。 . .

    编辑:

    关于下划线模板问题:BB OS5.0 上的本机 foreach 实现似乎存在问题。如果可用,下划线将调用此本机 foreach。用下划线注释掉以下行修复了我们在 OS5.0 中的集合渲染:

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2012-09-08
      • 2011-12-11
      • 2011-10-29
      相关资源
      最近更新 更多