两个数据绑定属性在KnockoutJS中不起作用

时间:2017-01-06 05:54:40

标签: javascript knockout.js

我正在使用一个函数,它返回一个整数值,基于我循环它生成html div。请参阅以下代码:

<div data-bind="foreach: new Array(getCartTotalParam())">
     <div data-bind='text : $index()+1, css: { active: getCartParam("summary_count") >= $index()+1 }'></div>
</div>

getCartTotalParam()返回一个整数,比方说21,所以我在其中生成了21个div。 现在我想添加一个css类(作为活动)。 逻辑是我使用了css绑定,即调用getCartParam("summary_count")。它检查返回值和循环的迭代索引,并根据此比较我想添加css类。

但是我的代码无效。我已经提到了文档,但无法弄清楚遗漏了什么。

2 个答案:

答案 0 :(得分:1)

我认为上面给出的代码没有任何问题。您的逻辑可能存在错误。

如果给定的表达式cssactive,则getCartParam("summary_count") >= $index()+1与上面给出的(问题)语法绑定将适用true css,否则它将不会应用任何内容。< / p>

这是有效的jsbin

答案 1 :(得分:-1)

您应该将$index()+1 ($index()+1)更改为<div>标记中的<div data-bind='text : $index()+1, css: { active: getCartParam("summary_count") >= ($index()+1) }'></div>

brew install python3

以下是适合您的 DEMO http://jsfiddle.net/GSvnh/5689/

希望这有帮助!