0

knockout 2.2で簡単なことをdata-bind="visible..."しようとしていdivます。

<div id="test" style="display:none">this is visible</div>
<div data-bind="visible: $('#test').is(':visible')">show if test is visible</div>

そのまま、「テスト」はに設定されてdisplay:noneいますが、2 番目の div はまだ表示されています。なんで?これはできますか?注: すべてのスクリプト ref が含まれており、 tojQueryknockout 2.2.

デモはこちら: http://jsbin.com/uviwiz/1/edit

ko.applyBindings注:通話などは行っておりません。オブザーバブル関数を宣言した後にする必要があるのでしょうか?

4

1 に答える 1

0

最初の div と 2 番目の div の間に依存関係はありません。したがって、最初の div が変更された場合、その変更は 2 番目の div には適用されません。

これを試すことができます:

var ViewModel = function()
{
  var self = this;

  self.boolean =  ko.observable(true);

};
var vm = new ViewModel();

ko.applyBindings(vm);



setTimeout(function(){
  vm.boolean(false);
}, 2000);


<!DOCTYPE html>
<html>
<head>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.0/knockout-min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <div id="test" data-bind="visible:boolean">this is visible</div>
  <div data-bind="visible:boolean">only show if above div is visible or not</div>
  <div id="debug"></div>

</body>
</html>
于 2013-03-26T15:14:33.620 に答える