2012-11-21 33 views
1

我必須編寫一個單一的頁面應用程序,它將在整個應用程序中使用相同的3個表單,只是每個應用程序的操作都會改變。標籤/輸入將是相同的,等等...加載一個HTML對象客戶端(表單)

我想讓我的應用程序快速和非常快速響應,因此,我想知道如果這可能是一個好主意,通過Javascript每次它dinamically生成FORM被加載,而不是從服務器上以HTML格式下載。

那麼,有什麼好的做法,通過JavaScript生成DOM objets?第一次加載應用程序時,有沒有辦法下載每個FORM的HTML代碼?或者我必須通過使用JS的DOM對象來構建它們?

這裏有什麼好習慣嗎?我使用node.js,knockout.js,jquery。

謝謝!

+0

Knockout做到了這一點。當你說你正在「使用」淘汰賽時,你能告訴我們如何? WhatHaveYouTried? – Tyrsius

+0

我需要一種方法來做到這一點,沒有在JS變量裏面注入HTML代碼 – user1017926

+0

我認爲這回答我的問題,因爲我也使用下劃線庫http://stackoverflow.com/questions/4778881/how-to-use-下劃線-js-as-a-template-engine – user1017926

回答

1

您使用的淘汰賽,所以纔有形式爲淘汰賽模板:

<script type="text/html" id="MyForm"> 
    <!-- labels and inputs and other form elements here --> 
</script> 

那麼您可以在您的網頁後使用它像

<form class="foo" data-bind="attr: { action: myAction }, template: 'MyForm'></form> 

myAction將是一個觀察或您傳遞給ko.applyBindings的模型的簡單屬性,如

ko.applyBindings({ action: '/submit/stuff' }, $('form.foo')[0]); 

淘汰賽有great tutorialsgreat documentation,所以檢查一下。