2013-05-17 61 views
0

與頁面工作,我有如下表嵌套結合觀察到的集合不knockout.js

 <table> 
      <tbody data-bind="foreach: myfilters"> 
       <tr> 
        <td data-bind="with: $root.iqReports"> 
         <select data-bind="options: SelectedAttributes(), optionsText: function(SelectedAttributes){ return SelectedAttributes.NameHierarchy() + '.' + SelectedAttributes.LabelName() }, optionsCaption:'Select a Field...'"></select> 
        </td> 
        <td> 
         <select data-bind="options: $root.filterOperators, value:operator, optionsText: 'operatorName'"> 
         </select> 
        </td> 
        <td> 
         <input data-bind="value: criteria1" /> 
        </td> 
        <td> 
         <input data-bind="value: criteria2" /> 
        </td> 
        <td> 
         <select data-bind="options: $root.joinOperators, value:joinOperator, optionsText: 'joinName'"> 
         </select> 
        </td> 
        <td> 
         <a class="attributeLink" data-bind="click: $root.removeFilter">Remove</a> 
        </td> 
       </tr> 
      </tbody> 
     </table> 

收集我的過濾器正確填入必要的元素。我掙扎的地方在於第一個單元格,我嘗試使用另一個可觀察集合(iqReports)來填充選擇元素。當我運行頁面時,螢火蟲不會報告任何錯誤,但元素爲空。從螢火蟲

HTML:

<td data-bind="with: $root.iqReports"></td> 

我知道什麼是錯與試圖以這種方式綁定,因爲移動選擇元素精細作品之外。

任何人都可以提供一些見解,如何設置這種類型的綁定?

更新:這裏是一個局部小提琴,顯示在創建過濾器和報表對象http://jsfiddle.net/rlcrews/e7z93/

-cheers

+1

你能做一個小提琴嗎? – Jalayn

+1

你能否提供一個iqReports對象的例子? –

+0

@Jalayn更新了部分小提琴 – rlcrews

回答

0

使用我沒有看到iqReports在您的視圖模型對象或觀察到的唯一標記一個iqReport。改變你的HTML反映一個iqReport,看看是否整理它我無法從你的小提琴分辨...

而對於記錄時,我在淘汰賽中級聯下拉列表中,我使第二個列表基於第一個 -

var self.firstList = ko.observableArray(objects); 
var self.firstListSelected = ko.observable(null); 

var self.secondList = ko.computed(function() { 
    var list = ko.observableArray(); 
    if (self.firstListSelected() == null) { return list(null); } 
    list(getDependentObjectsSomehow()); 
} 
+0

呃沒有什麼像一個好的錯字。感謝您的支持,並感謝關於級聯下拉的提示 – rlcrews

+0

沒問題,我也更新了正確投射觀察值的建議,以便更有意義。 –