2013-02-18 57 views
0

我有幾個子視圖的外殼視圖 - 看起來像那樣並且工作正常。基於子模型的淘汰+刷新數據

<div id="shellView" style="display: none;"> 
<div id="tabView" data-bind="with: Tab(), visible: State() === 'Tab'"> 
    @Html.Partial("Tab") 
</div> 
<div id="tab2View" data-bind="with: Tab2(), visible: State() === 'Tab2'"> 
    @Html.Partial("Tab") 
</div> 

問題是beetween凸片切換時(只對鉻)。一個標籤都有淘汰賽綁定的圖像列表 - 所有圖像都在控制器,它重定向到我們的服務器或客戶端服務器SRC行動(RedirectResult)和下載圖片:

[HttpGet] 
    public RedirectResult DynUrl(int id, string size) 

第二個選項卡是在這一點空 - 但是當我切換到它們時,Google Chrome製作請求會讓所有DynUrl再次下載圖像 - 目前已下載 - 只是隱藏起來。

我正在使用淘汰賽2.1.0。

回答

1

應該像

<div id="shellView" style="display: none;"> 
<!-- ko with: Tab --> 
<div id="tabView" data-bind="attr: {display: isVisible}"> 
    @Html.Partial("Tab") 
</div> 
<!-- /ko --> 
<!-- ko with: Tab2 --> 
<div id="tab2View" data-bind="attr: {display: isVisible}"> 
    @Html.Partial("Tab") 
</div> 
<!-- /ko --> 

,並把

this.isVisible = ko.computed(function(){ 
if(self.visibleState())return 'block'; 
else return 'none'; 
}); 

上的標籤視圖模型

+0

我越來越:消息:的ReferenceError:ISVISIBLE沒有定義;事實上...我和你的版本之間有什麼不同 - 都關注於改變可見性? – nilphilus 2013-02-18 11:49:36

+0

關鍵的區別在於,您需要使用「with:Tab」而不是「with:Tab()」來獲取淘汰賽以觀察參考對象的變化並將其應用於模板 – cioddi 2013-02-18 11:53:03

+0

參考對象獲取有關更改的通知,但是鉻它也刷新數據不會改變 - 不改變確切的數據,仍然是src =「DynUrl ---參數」,但要求圖像。 – nilphilus 2013-02-18 12:28:22