2016-12-01 43 views
0

在淘汰赛之前,有没有办法来告诉它等待,直到有一个值设置评估HTML的某些部分?不要试图评估数据绑定变量设置

这第一种方法是我目前做的,使其工作和下一个是我想什么都有(或类似)。

<div> 
    <span data-bind="text: ObservableThing() != null ? ObservableThing().Name : ''"> 
</div> 

<div data-bind="visible: isReady()"> 
    <span data-bind="text:ObservableThing().Name"> 
</div> 

我敢肯定,有人已经对此恼火,并解决了它..如果它尚未建成,我只是没有找到它。

编辑:为更多的上下文。 Observable的定义是这样的:model.ObservableThing = ko.observable();它由jQuery.Get在某些时刻通过此代码调用:model.ObservableThing (resultData);

+0

你可以用'如果:ObservableThing,文本:ObservableThing' – haim770

+0

@ haim770似乎不工作:“多重绑定(如果和文本)试图控制相同元素的后代绑定,你不能一起使用这些绑定“ – JensB

回答

0

很容易,请使用if。

<div data-bind="if: isReady()"> 
    <span data-bind="text:ObservableThing().Name"> 
</div> 

这一切都有效。

0

由于“ObservableThing”是一个复杂的对象,将其绑定使用具有结合和所有后代可以绑定到“ObservableThing的属性。它会比使用if作为knockout来确定何时呈现'ObservableThing'及其元素更清晰和更好。

<div data-bind="with: ObservableThing"> 
    <span data-bind="Name"> 
</div> 

看看这个链接获取更多信息:http://knockoutjs.com/documentation/with-binding.html