Javascript 敲除JS网格,bind语句中允许的字符
我正在用敲除js打印网格的行。我希望根据迭代的索引是否可以被2整除来应用CSS类 这是我的绑定语句,为每行调用:Javascript 敲除JS网格,bind语句中允许的字符,javascript,html,knockout.js,Javascript,Html,Knockout.js,我正在用敲除js打印网格的行。我希望根据迭代的索引是否可以被2整除来应用CSS类 这是我的绑定语句,为每行调用: <data-bind="css: { $index % 2 === 0 ? 'grid_row' : 'grid_a_row' }"> 出现了两个问题: 在属性内部似乎禁止使用% 宣言。我的IDE(VS2012)无法识别任何出现的内容 在%之后作为字符串的一部分(我可以通过 颜色) 在 击倒?或者我必须写两次$index%2==0(每个类一次) 哪些解决方案适用
<data-bind="css: { $index % 2 === 0 ? 'grid_row' : 'grid_a_row' }">
出现了两个问题:
- 在属性内部似乎禁止使用
宣言。我的IDE(VS2012)无法识别任何出现的内容 在%
之后作为字符串的一部分(我可以通过 颜色)%
- 在
击倒?或者我必须写两次
(每个类一次)$index%2==0
css: { 'name-of-css-rule': function(){}, 'another-css-rule': function(){} }
在您的情况下,您可以创建一个可观察的,如:
viewModel.myBooleanFunction = ko.computed(function() {
return this.foo() % 0 === 0 ? "even" : "odd";
}, viewModel);
在CSS绑定中声明如下:
data-bind="css: myBooleanFunction"
这些是动态CSS规则:
发件人:是的,您是正确的:
这是应用一个类还是另一个类的正确方法
击倒?或者我必须写$index%2==0两次(每个类一次)
您的CSS绑定语法不正确,应该是:
css: { 'name-of-css-rule': function(){}, 'another-css-rule': function(){} }
在您的情况下,您可以创建一个可观察的,如:
viewModel.myBooleanFunction = ko.computed(function() {
return this.foo() % 0 === 0 ? "even" : "odd";
}, viewModel);
在CSS绑定中声明如下:
data-bind="css: myBooleanFunction"
这些是动态CSS规则:
From:您的语法有点错误。您必须使用
$index()%2==0
,并且您使用的是错误的。这将有助于:
<div data-bind="css: { grid_row: $index() % 2 === 0, grid_a_row: $index() %2 === 1 }">
您的语法有点错误。您必须使用
$index()%2==0
,并且您使用的是错误的。这将有助于:
<div data-bind="css: { grid_row: $index() % 2 === 0, grid_a_row: $index() %2 === 1 }">
或者,如果您愿意使用,可以像这样使用coalesce操作符
data-bind="attr: { class: ($index() % 2 == 0) ? 'grid_row' : 'grid_a_row' }"
请注意,它将完全覆盖class属性,并且之前声明的任何其他类都将丢失 或者,如果您喜欢使用,可以像这样使用coalesce操作符
data-bind="attr: { class: ($index() % 2 == 0) ? 'grid_row' : 'grid_a_row' }"
请注意,它将完全覆盖class属性,并且之前声明的任何其他类都将丢失 谢谢!非常有用!您还知道如何将迭代的索引传递给函数吗?使用简单函数而不是计算并将$index()传递给它来解决。谢谢!非常有用!您还知道如何将迭代的索引传递给函数吗?使用简单函数而不是计算并向其传递$index()。此解决方案简单且接近我的原始意图。谢谢你的澄清!这个解决方案很简单,很接近我的初衷。谢谢你的澄清+1我也在考虑将此作为替代解决方案。在使用它时,您必须小心不要在元素上有任何额外的类,因为我相信属性绑定会覆盖它们(这就是为什么我宁愿使用css绑定来防止错误)。“除此之外,它也很管用。@dhsto:我会记住的。”。在knockoutjs中仍然是新手。随着时间的流逝,人们越来越惊讶。我做了测试。你说得对。它覆盖了属性+1,我也在考虑将其作为替代解决方案。在使用它时,您必须小心不要在元素上有任何额外的类,因为我相信属性绑定会覆盖它们(这就是为什么我宁愿使用css绑定来防止错误)。“除此之外,它也很管用。@dhsto:我会记住的。”。在knockoutjs中仍然是新手。随着时间的流逝,人们越来越惊讶。我做了测试。你说得对。它将覆盖该属性