试图使用&&在Knockout中的css数据绑定中

时间:2015-08-10 22:14:22

标签: javascript knockout.js

我是淘汰赛的新手,我正试图检查两个布尔值。目前,我有:

data-bind="css: { hidden: bool1() }"

Hidden是我在CSS中创建的一个类。我需要检查两个bool才能使用该类。一个bool工作正常。我该如何使用两个?

我尝试了以下内容:

data-bind="css: { hidden: bool1() && bool2() }"

data-bind="css: { hidden: bool1() + bool2() }"

我只是没有得到它。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

这是一个工作示例。如果选中两个框,则隐藏文本。在绑定中的表达式中使用它们时,需要调用observable。

ko.applyBindings({
  bool1: ko.observable(),
  bool2: ko.observable()
});
.hidden {
  visibility:hidden;
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="css:{hidden:bool1()&&bool2()}">I'm here!</div>
<input type="checkbox" data-bind="checked:bool1" />
<input type="checkbox" data-bind="checked:bool2" />

答案 1 :(得分:0)

<强>更新 哦!傻我。一定要在bool1和bool2之后插入括号..所以:

val identifierPosition = 3; val l = "this is a identifierhere here"; val sl = l.split(" ").toList; val elementAtPos = sl(identifierPosition) val swapped = elementAtPos :: dropIndex(sl , identifierPosition) println(swapped) def dropIndex[T](xs: List[T], n: Int) : List[T] = { val (l1, l2) = xs splitAt n l1 ::: (l2 drop 1) }

另外,请务必将其放入div标签中,或放在船上。

http://knockoutjs.com/上有很多文档,所以你应该检查一下你还没有。告诉我它是否有效。

答案 2 :(得分:0)

这是另一种选择(Roy J&#39; s的扩展),它使你的html更简单,并且使重构更容易如果你在多个地方使用bool的组合

&#13;
&#13;
bool1 = ko.observable();
bool2 = ko.observable();

ko.applyBindings({
  bool1: bool1,
  bool2: bool2,
  shouldHideDiv: ko.computed(function () {
    return bool1() && bool2();
  })
});
&#13;
.hidden {
  visibility:hidden;
  }
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="css:{hidden: shouldHideDiv}">I'm here!</div>
<input type="checkbox" data-bind="checked:bool1" />
<input type="checkbox" data-bind="checked:bool2" />
&#13;
&#13;
&#13;