我想实现像
这样的虚拟元素<!-- ko if: $index() > 9 && $index() < 20 -->
但它没有执行。 请帮帮我。
答案 0 :(得分:1)
检查出来:http://jsfiddle.net/y3KV2/
你有什么工作,但可能是你遗漏了别的东西,所以我做了一个小小的简单例子,你可以看看它是如何工作的。
<div data-bind="foreach: data">
<!-- ko if: $index() > 9 && $index() < 20 -->
test <span data-bind="text: $index()"></span>
<!-- /ko -->
</div>
var vm = function () {
var self = this;
self.data = ko.observableArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]);
}
var s = new vm();
ko.applyBindings(s);
答案 1 :(得分:0)
使用DOM检查器确保虚拟元素的注释节点实际包含&符号;问题可能是那些应该被HTML转义的东西,或者已经被HTML转义的东西被双重转义。
您的服务器应该发送
<!-- ko if: $index() > 9 && $index() < 20 -->
为了让浏览器创建一个注释节点,并使用正确的Knockout语法进行解析。使用像Curl这样的工具来验证它是否正确。
答案 2 :(得分:0)
使用函数::
<!-- ko if: function() { myIndicesLoveMe($index) } -->
然后将函数放在某处并确保它返回True或False ::
myIndicesLoveMe = function(index) {
return (index > 9 && index < 20);
}