Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 敲除JS网格,bind语句中允许的字符_Javascript_Html_Knockout.js - Fatal编程技术网

Javascript 敲除JS网格,bind语句中允许的字符

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(每个类一次) 哪些解决方案适用

我正在用敲除js打印网格的行。我希望根据迭代的索引是否可以被2整除来应用CSS类

这是我的绑定语句,为每行调用:

<data-bind="css: { $index % 2 === 0 ? 'grid_row' : 'grid_a_row' }">

出现了两个问题:

  • 在属性内部似乎禁止使用
    %
    宣言。我的IDE(VS2012)无法识别任何出现的内容 在
    %
    之后作为字符串的一部分(我可以通过 颜色)

  • 击倒?或者我必须写两次
    $index%2==0
    (每个类一次)
哪些解决方案适用?

是的,您是正确的:

这是应用一个类还是另一个类的正确方法 击倒?或者我必须写$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规则: 发件人:

是的,您是正确的:

这是应用一个类还是另一个类的正确方法 击倒?或者我必须写$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中仍然是新手。随着时间的流逝,人们越来越惊讶。我做了测试。你说得对。它将覆盖该属性