2012-12-06 37 views
2

我只是想知道如何去做這件事。我想加載一個將通過JSP生成的初始頁面,這將是我的淘汰賽視圖。但是,如果在頁面加載時立即執行Ajax請求並獲取數據以設置字段值,那麼似乎很遺憾。初始狀態與knockout.js和Spring MVC/JSP

什麼是理想的是,如果我可以加載初始視圖的值設置,然後從這個初始化敲除。我不確定這是否可能?我的另一個想法是生成一個空的視圖,然後在底部放置一個部分,我寫JSON輸出相當於我試圖避免的Ajax請求。

當然有人解決了這個問題?

回答

4

當你的視圖被渲染時,你可以簡單地將json數據模板化爲javascript,並讓你敲擊訪問該數據(或將其傳遞給viewmodel)。

<script type="text/javascript"> 
    var data = /*INSERT TEMPLATED DATA HERE*/; 

    var model = new Model(data); 
    ko.applyBindings(model); 
</script> 

編輯:

我通常建立我在通用模板方法淘汰賽的ViewModels支持inital狀態以及延遲狀態如Ajax調用。這將與我上面列出的方法很好地發揮作用:

function Model(data, parent) 
{ 
    var self = this; 
    self.parent = parent; 

    self.Load = function(data) { 
     if (data) { 
      //initialize data here 
     } 
    }; 
    self.Load(data); //call initially here in case of initial state 


    //other functionality 
} 
+0

這是我正在考慮的方法之一。我不確定是否必須在網頁上輸出JSON,但我想這不是要麼是ajax調用。 –

+0

這是你的兩個選擇= P –

+0

夠公平的。謝謝。 –