2012-07-09 28 views
0

我試圖創建一個可重用的嚮導控件,它將顯示基於Knockout的數據輸入表單。本質上,模板永遠不會真正改變,但會完全動態。我設想能夠做到以下幾點:KnockoutJS嚮導

  • 定義一個簡單的模型,它包含的步驟列表,基本上是一步ID,也許一些邏輯上是否可以返回步驟來完成一次。
  • 每一步應該有一個字段或輸入項的集合來顯示。這真的分解成一個HTML標籤和輸入框。

我把我最初的想法/邏輯放在一起,並拿出this。我在顯示字段時遇到問題。步驟標題全部正確呈現,但我的Fields集合始終爲空。我錯過了什麼?

回答

1

有趣的背景。我根本無法在小提琴中工作,但在當地工作。我改變了兩件事 - 你需要明確地關閉標題的範圍,並且你需要用if來測試每個步驟對象是否存在字段,因爲並非所有步驟都具有字段。像這樣:

 templateEngine.addTemplate("merlin_wizard", "\ 
      <div class=\"m-ui-wizard\">\ 
       <div class=\"m-ui-wizard-steps\" data-bind=\"foreach: steps\">\ 
        <div class=\"m-ui-wizard-step\">\ 
         <span data-bind=\"text: Title\"></span>\ 
         <!-- ko if: $data.Fields -->\ 
          <!-- ko foreach: Fields -->\ 
           <span data-bind=\"text: Label\" />\ 
          <!-- /ko -->\ 
         <!-- /ko -->\ 
        </div>\ 
       </div>\ 
      </div>"); 
+0

是的,我無法讓它在小提琴中工作,不知道爲什麼真的。無論哪種方式,我會給你幾個建議在這裏嘗試。 – 2012-07-10 12:10:21

+0

這工作。儘管我現在對另一個問題感到困惑,實際上是傳入viewModel並綁定模型以形成元素。如果你不介意看看,我會打開另一個問題然後引用它。 – 2012-07-10 12:48:23

+0

這是我的後續問題:http://stackoverflow.com/questions/11413947/pass-a-viewmodel-to-reusable-knockout-control – 2012-07-10 13:07:08