knockout:如何使用可见数据绑定observable隐藏段落标记?

时间:2016-05-06 07:35:02

标签: javascript knockout.js

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

这是演示代码: Fiddle demo

这是我试过的一个可观察的变量和分配:

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

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

如何隐藏此段落标记?

1 个答案:

答案 0 :(得分:0)

工作演示:



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>
&#13;
&#13;
&#13;

在您的代码中:

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

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

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

最后,你的小提琴并没有加载Knockout。在玩小提琴时,你应该添加你在&#34;外部资源&#34;下使用的库。