【问题标题】:Ember is there alternative way for binding elements attributesEmber 是否有绑定元素属性的替代方法
【发布时间】:2013-09-05 07:55:50
【问题描述】:

我有一个动态创建的 Ember 视图,这些视图是从存储在数据库中的一些子部分连接起来的。我还使用 Jsoup 来修改模板以包含其他一些非 Ember 部分。不幸的是,当我存储的 ember 部分以常见的方式包含属性绑定时:

<li {{bindAttr class="isCompleted:completed isEditing:editing"}}>

Jsoup 试图通过添加空引号来“修复”它们,这当然是预期的行为:

<li {{bindattr="" class="isCompleted:completed isEditing:editing" }}="">

有什么方法可以绑定属性,即。通过将其包装在一些有效的 HTML
IE。像 data-ember='{{bindAttr "something"}}' 或者至少是防止 Jsoup 发生这些变化的方法?

【问题讨论】:

  • 你能解释一下 jsoup 在这个组合中的作用吗?我知道它是解析和操作 HTML 的服务器端 API。这与客户端上的 Handlebars 模板有何关系?
  • 这很简单,我正在创建简单的工具来管理电子邮件的模板。用户可以登录到后端并仅使用预定义的元素(这仍然不是 Ember 部分)创建新的字段集接下来我将保存它并转换为 Ember 的模板,该模板在创建新邮件时使用,我正在使用 Jsoup用于遍历传入的 HTML,因此我可以将非 Ember 动态部分添加到最终模板中。注意这些附加部分不能切换到 Ember 的逻辑
  • @mavilein 更短的形式 - Jsoup 在此组合中动态创建 Ember 的视图 :)

标签: ember.js html-parsing jsoup handlebars.js


【解决方案1】:

这里的问题是(您肯定已经知道)Jsoup 尝试使用包含的 handlebars 表达式解析您的 HTML 标记,并通过这样做检查对于有效的HTML,因此在bindAttr 的情况下,这被解释为&lt;li&gt; 标记的属性,并且因为有效属性类似于class="foo",所以Jsoup 将其转换为bindAttr=""

遗憾的是,没有内置的方法告诉 Jsoup 忽略没有值的标签。我想您应该尝试另一种适合您需求的工具。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2020-04-14
    • 2012-11-11
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多