2016-12-01 52 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