2012-11-05 35 views
1

我正在使用kendo-UI的knockout.js。
我有這樣的網格模型:剔除js綁定不能正確綁定網格標題

var GridModel = function (options) { 
     function GridItem(item) { 
      return { Id: item.Id() || '', Description: item.Description() }; 
     } 

     $.extend(this, { 
      data: ko.observableArray(), 
      gridOptions: { 
       pageable: true, 
       pageSize: 5, 
       sortable: true, 
       scrollable: false, 
       selectable: true, 
       columns: [ 
         { field: 'Id', title: 'title1', width: '80px', groupable: false }, 
         { field: 'Description', title: 'title2', width: '200px', groupable: false } 
       ] 
      } 
     }); 

     this.addItem = function (item) { 
      this.data.push(new GridItem(item)); 
     } 
    }; 

這是我的標記:

<div id="GridDiv" data-bind="kendoGrid: data, gridOptions: gridOptions"></div> 

這是我如何申請綁定:

ko.applyBindings(new GridModel(), $('#GridDiv').get(0)); 

出於某種原因,該欄目的標題不綁定,而不是title1和title2,我得到Id和Description。 此外,如果我將this.data.push(new GridItem(item));替換爲this.data.push(item);而不是2列,我會得到10列(因爲項目包含10個成員)。

爲什麼綁定不能正常工作?

更新: 我添加了一個jsfiddle http://jsfiddle.net/mTqdE/14/,但不知何故,它不工作..任何想法?

+0

你可以在小提琴中發佈你的代碼嗎? –

+0

@Artem Vyshniakov:我添加了一個jsfiddle,但我無法運行它.. – Naor

+0

是否從列定義幫助中刪除標題:'title1'和標題''title2''選項? –

回答

1

他們an example如何正確地傳遞更多選項與淘汰賽綁定:

Here's working example

<div id="GridDiv" data-bind="kendoGrid: gridOptions"></div> 
<button data-bind="click: addRandomItem">add</button> 

又通data作爲網格選項。

+0

你知道,我還有其他的代碼,它也可以工作,而且我也確實喜歡他(數據在gridOptions之外)。但對我而言,這並不奏效。另一方面,你的代碼確實有效。怎麼來的?? 謝謝! – Naor