2015-10-06 63 views
1

我有一個角劍道格引用它的選擇與k-optionsk-rebind對象...角劍道電網與K-重新綁定不深看它的選項對象

<kendo-grid k-data-source="data" k-options="options" k-rebind="options"></kendo-grid> 

當我改變列標題中引用的選項對象網格不會注意到更改,因此不會在下一個摘要上觸發k-rebind

我怎樣才能讓它深入觀察選項對象並注意到這些重要變化?

工作code pen

回答

1
$scope.changeColTitles = function(){ 
    $scope.a++; 
    $scope.b++; 
    } 

如果在控制器中更改了作用域變量,則更改的值將不會反映在使用它的位置。必須保持手錶並在其內部執行相應的邏輯。

而對於你的問題,你不需要保持觀察。以下代碼行應解決該問題。 CodePen是here

$scope.changeColTitles = function(){ 
    $scope.options.columns[0].title = 'col ' + ++$scope.a; 
    $scope.options.columns[1].title = 'col ' + ++$scope.b; 
    } 
+0

加上工作解決方案的一點,但我不明白你的解釋非常好......你能澄清一下嗎? – hally9k

+0

哦,對不起!通常情況下,如果一個範圍變量被改變,角度摘要週期將只反映視圖中的值,但在控制器中,它只檢查變量是否有任何手錶被執行......所以在你的情況下:當有* a *和* b *被改變了,那些改變的值並沒有直接反映到列中:你可以用兩種方式更新這些列,第一種是我在答案中提到的方式,第二種是$ scope。$ watch('a',函數(){}) –

+0

您可以通過兩種方式更新這些列,第一種是我在答案中提到的方式,第二種是 $ scope.changeColTitles = function(){ $ scope.a ++; $ scope.b ++; 。 } $ $範圍手錶( '一個',函數(){$ scope.options.columns [0] .title僞= 'COL' + $ scope.a; }) $ $範圍手錶。 ('b',function(){ $ scope.options.columns [0] .title ='col'+ $ scope.b; }) 我希望我有點清楚! –