Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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 使用剔除样式绑定隐藏表行_Javascript_Asp.net_Asp.net Mvc_Knockout.js_Typescript - Fatal编程技术网

Javascript 使用剔除样式绑定隐藏表行

Javascript 使用剔除样式绑定隐藏表行,javascript,asp.net,asp.net-mvc,knockout.js,typescript,Javascript,Asp.net,Asp.net Mvc,Knockout.js,Typescript,我想用knockout.js将表行的显示样式绑定到viewmodel属性。我必须使用绑定,因为我想根据viewmodel中的其他属性隐藏或显示表行 示例HTML代码: <tr data-bind="style: myProperty"> Test </tr> 但这不起作用。加载页面后输入属性,但仍显示表行。还有别的方法吗?或者我忘了什么吗?您应该使用“可见”绑定。更多细节 您的示例可能如下所示: <tr data-bind="visible: myProp

我想用knockout.js将表行的显示样式绑定到viewmodel属性。我必须使用绑定,因为我想根据viewmodel中的其他属性隐藏或显示表行

示例HTML代码:

<tr data-bind="style: myProperty">
    Test
</tr>
但这不起作用。加载页面后输入属性,但仍显示表行。还有别的方法吗?或者我忘了什么吗?

您应该使用“可见”绑定。更多细节

您的示例可能如下所示:

<tr data-bind="visible: myProperty">
    Test
</tr>

测验

感谢您的帮助,我找到了另一个解决方案:

根据当时的文档,我现在将样式设置为:

<tr data-bind="style: { display: !TrueOrFalseProperty() ? 'none' : 'inline' }">
   Test
</tr>

测验

这是可行的。

如果你没有访问任何其他可观察到的,为什么你需要一个
计算的
?为什么不使用装订呢?无论如何,样式绑定采用的是对象而不是字符串,因此需要编写:
this.myProperty=ko.computed(()=>{return{display:“none”};})
使用
visible:myProperty
更改元素的
显示
样式,但具有简洁、健壮和可读的绑定。我建议使用@sbirthare给出的答案是的,这是错误的。您确实应该使用可见绑定。而且,您最初的方法比在html中排列逻辑要好。你只是缺少了“无”的引号。一旦你看到了用“正确”的方式做这件事的微妙优势,击倒就很棒了。
<tr data-bind="style: { display: !TrueOrFalseProperty() ? 'none' : 'inline' }">
   Test
</tr>