【问题标题】:Is "data-bind" a strictly knockout-only attribute?“数据绑定”是严格的仅淘汰属性吗?
【发布时间】:2016-01-19 16:11:51
【问题描述】:

我知道总是可以为 HTML 标记定义 own custom attributes

我还知道data-bind 是关键字knockout.js 被选为将数据链接到UI 的HTML 属性。

到目前为止一切顺利。

我很想知道,当我在某个网站上遇到 HTML 并看到它使用属性 data-bind 时,是否总是暗示它使用 knockout.js

<span class="chk" data-bind="visible: selectedAnswers().length > 0" />

换句话说,使用data-bind 属性的网站使用knockout.js 的可能性有多大?

【问题讨论】:

  • 不,它不是特定于knockout - 任何人都可以使用它。 - 就可能性而言……谁知道呢。查看网络标签,看看是否包含淘汰赛。
  • @tymeJV 谢谢。 “网络选项卡”是指 Firefox 的 Web 开发人员工具中的 Network 项目吗? (Ctrl+Shift+Q)
  • 不,不是...我在不涉及淘汰赛的项目中使用了data-bind。只要数据的用途是有意义的,那么您就可以使用任何您想要的东西。
  • @datps - 是的,就是这个。
  • @ann0nC0d3r 谢谢。我很高兴我问了这个问题,因为作为knockout.js 的新手,我第一次注意到这个属性并且对此感到疑惑。如果你们中的一个人发表您的评论作为答案,我会接受它。

标签: javascript html knockout.js


【解决方案1】:

不,不是...我在不涉及淘汰赛的项目中使用了data-bind。只要对数据的用途有意义,那么您就可以使用您想要的任何字符串(在合理范围内,请参见下文)...

data-bind=""

data-binder=""

data-im-a-data-attribute=""

data-* 属性由两部分组成:

1) 属性名不能包含任何大写字母,并且必须在前缀“data-”之后至少有一个字符

2)属性值可以是任意字符串

here获得的信息

【讨论】:

    【解决方案2】:

    Knockout 使用 data-bind 属性,但它只是 HTML5 data-* 属性的一个子集。它们允许将额外数据存储在不遵循标准 HTML 属性的元素中。

    来自https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes

    data-* 属性允许我们在标准、语义 HTML 元素上存储额外信息,而无需其他技巧,例如 classList、非标准属性、DOM 上的额外属性或 setUserData。

    所以任何人都可以使用名为 data-bind 的属性,Knockout 选择使用它是因为它对他们有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      相关资源
      最近更新 更多