2

我阅读了文档http://knockoutjs.com/documentation/attr-binding.html但不明白为什么

 <img data-bind="attr: {src: imgname}"/>

有效,但

 <img data-bind="src: imgname"/>

才不是...


这个attr绑定到底有什么作用,有什么特别之处src

4

2 回答 2

3

为什么要"src: imgname"工作?

Knockout 中只有几个用于控制文本外观的内置绑定,如下所示:

  • 可见的
  • 文本
  • html
  • css
  • 风格
  • 属性

如您所见src,不在列表中。所有内置的或多或少都是不言自明的,但是当您想在没有内置支持的情况下绑定到其他一些属性时,例如src您需要使用通用attr语法。

文档中所述:

attr 绑定提供了一种通用方法来为关联的 DOM 元素设置任何属性的值。这很有用,例如,当您需要根据视图模型中的值设置元素的标题属性、img 标记的 src或链接的 href 时

于 2012-09-20T06:45:48.563 回答
1

data-bind html5 属性中的 'attr' 是 Knoclout.JS 预定义的绑定,相反,第二个示例中的 'src' 不是。

于 2012-09-20T06:41:28.400 回答