Knockout.js 敲除中的可见属性不工作

Knockout.js 敲除中的可见属性不工作,knockout.js,Knockout.js,我正在尝试使用visible属性进行敲除绑定。我有一个可观察的属性“DataContainer”,下面是js文件中的示例代码。由于在aspx中发生了多个ajax调用,因此我根据 条件页面在加载内容后按预期运行。然而,问题是在加载内容之前,我能够看到页面中的所有div标记。请让我知道任何帮助。 我不想在页面上显示所有的div标签 function A() { self.DataContainer = false; .. .. //ajax calls .. ..

我正在尝试使用visible属性进行敲除绑定。我有一个可观察的属性“DataContainer”,下面是js文件中的示例代码。由于在aspx中发生了多个ajax调用,因此我根据 条件页面在加载内容后按预期运行。然而,问题是在加载内容之前,我能够看到页面中的所有div标记。请让我知道任何帮助。 我不想在页面上显示所有的div标签

function A()
{
  self.DataContainer = false;
  ..
  ..
      //ajax calls
  ..
  ..
     //ajax calls
  ..
  ..
  .. 
    //ajax calls
  ..
  ..
   //ajax calls

  ..

  self.DataContainer =  true;  


}


Sample.aspx
<div id=container data-Bind="visible :DataContainer>
   ...
   ...

  <div data-bind="If : conditon1>
  </div>
   ...

  <div data-bind="If : conditon2>
  </div>

   ..
   ..
   ..
  <div data-bind="If : conditon3>
  </div>


  ..
  ..
  <div data-bind="If : conditon4>
  </div>


</div>
函数A()
{
self.DataContainer=false;
..
..
//ajax调用
..
..
//ajax调用
..
..
.. 
//ajax调用
..
..
//ajax调用
..
self.DataContainer=true;
}
Sample.aspx
...
..
..

Hej man,数据绑定中的语句是用小写写的,您忘记了关闭引号。因此,它应该是这样的:data bind=“if:conditon4”,与可视绑定相同。另外,我看到您有ajax调用。Ajax调用是异步的,这意味着您的“self.DataContainer=true;”可能会在进行Ajax调用之前触发。我建议您使用ajax promise.done,或者在上一个ajax方法的success函数中设置将DataContainer设置为true的代码。“我有一个可观察属性
DataContainer
”,如果这个属性是真正可观察的,您不能使用
self.DataContainer=true
来设置它。您必须使用它的新值调用它:
self.DataContainer(true)
。我使用“async:false”进行ajax调用。但是仍然有大量数据可用,并且仍然显示div标记。可能重复