如何使用样式数据绑定?

fad*_*bee 6 knockout.js

我在KnockoutJS中使用样式绑定很困难.

<script id="avatarTemplate" type="text/x-jquery-tmpl">
  <div id="avatar_${id}" class="avatar" data-bind="style: 
    { background: s, width: '50px', height: '85px', left: (x + 'px'), top: 
    (y + 'px') }">${s}, ${x}, ${y}</div> 
</script> 

<div data-bind="template: { name: 'avatarTemplate', foreach: avatars }"></div> 
Run Code Online (Sandbox Code Playgroud)

渲染此模板的结果是:

<div id="avatar_1" class="avatar" style="width: 50px; height: 85px;">avatar.png, 0, 0</div> 
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我弄清楚为什么所有依赖于视图模型的样式都没有显示出来?

RP *_*yer 19

如果xy是可观察的,那么你需要像这样指定它:

<div id="avatar_${id}" class="avatar" data-bind="style: 
    { background: s, width: '50px', height: '85px', left: (x() + 'px'), top: 
    (y() + 'px') }">${s}, ${x}, ${y}</div> 
Run Code Online (Sandbox Code Playgroud)

如果在表达式中使用observable,则需要使用()指定它,因为它不会自动解包.

http://jsfiddle.net/rniemeyer/6GtV3/

  • 啊,我想知道怎么做KnockoutJS连接..谢谢:o) (3认同)