敲除:如何使用可见数据绑定可见来隐藏段落标记

knockout: how to hide a paragraph tag using visible data bind observable?

本文关键字:隐藏 段落标 数据绑定 何使用 敲除      更新时间:2023-09-26

我有一个段落标记,我想有条件地隐藏它。我无法隐藏它。

这是演示代码:Fiddle演示

这就是我所尝试的——使一个可观察的变量和赋值:

var viewSellerBtnVisible = ko.observable(true);
viewSellerBtnVisible(false);

viewSellerBtnVisible(false)在原始代码中是有条件的,但即使这样它也不会被隐藏。

我应该如何隐藏此段落标记?

工作演示:

var viewSellerBtnVisible = ko.observable(true);
ko.applyBindings({ viewSellerBtnVisible: viewSellerBtnVisible }, document.getElementById("txtRecommendationHeading"));
viewSellerBtnVisible(false);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<h3  class="">People also liked...</h3>
<p id="txtRecommendationHeading" data-bind="visible: viewSellerBtnVisible" class="font11">View seller details in <strong>one click</strong></p>

在您的代码中:

ko.applyBindings(viewSellerBtnVisible, document.getElementById("txtRecommendationHeading"));
var viewSellerBtnVisible = ko.observable(true);
viewSellerBtnVisible(false);

该模型应该是一个JavaScript对象,将名称映射到值。代码中的viewSellerBtnVisible是一个值;Knockout不可能仅仅从中知道它的名字是什么。

您还可以使用尚未定义的变量名应用绑定。在你applyBindings的点上,viewSellerBtnVisible甚至不是可观察的,它是undefined。由于参数是通过对象共享传递的,而不是通过引用传递的,因此绑定以后不会变成可观察的。你需要有一个正确的指令序列。

最后,你的Fiddle没有加载Knockout。当玩Fiddle时,你应该在"外部资源"下添加你正在使用的库。