Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 自动关闭<;a>;删除注释中的标记_Javascript_Html_Knockout.js_Knockout 2.0 - Fatal编程技术网

Javascript 自动关闭<;a>;删除注释中的标记

Javascript 自动关闭<;a>;删除注释中的标记,javascript,html,knockout.js,knockout-2.0,Javascript,Html,Knockout.js,Knockout 2.0,在我的视图中,我使用剔除注释来确定应该显示哪个标记。当我查看页面时,显示的任何标记都会在同一注释块中关闭。以前有人经历过吗?有更好的方法吗 谢谢虚拟元素必须正确嵌套,就像真实元素一样 您可以使用条件绑定添加类属性并单击事件: <!-- ko if: IsNew() === true --> <a href="#" class="new" data-bind="click:$root.markRead"> <!-- /ko --> <!-- ko

在我的视图中,我使用剔除注释来确定应该显示哪个标记。当我查看页面时,显示的任何标记都会在同一注释块中关闭。以前有人经历过吗?有更好的方法吗


谢谢

虚拟元素必须正确嵌套,就像真实元素一样

您可以使用条件绑定添加
属性并
单击
事件:

<!-- ko if: IsNew() === true -->
    <a href="#" class="new" data-bind="click:$root.markRead">
<!-- /ko -->
<!-- ko if: IsNew() === false -->
    <a href="#">
<!-- /ko -->
    <div class="notification-item">
....
    </div>
</a>


谢谢!我想我需要这样做,只是不知道如何。为了扩展我之前的问题,似乎在我更新一些元素的IsNew()属性时,它不会触发这些语句重新求值。你有解释为什么会这样吗?你是如何更新IsNew()?如果你使用
css:{'new':IsNew}
而不是
css:{'new':IsNew()}
,这会有帮助吗?我最终弄明白了,它正在按预期更新IsNew,只是我代码中没有运行的另一部分。再次感谢你的帮助。
<a href="#" data-bind="css: {'new': IsNew() }, click: IsNew() ? $root.markRead : null">
<div class="notification-item">
....
</div>
</a>