1

私は剣道グリッドを使用しており、次のテンプレートを含むチェックボックス列があります:

"<input class='gridCheckbox' id='gridCheckbox_#=name#' name='Selected' type='checkbox' ng-model='dataItem.checked'/>"

さらに、グリッドの dataSource として observableArray も使用しています。チェックボックスをクリックすると、observableArray のデータは期待どおりに変更されますが、「変更」イベントはトリガーされません。observableArray を定義する方法は次のとおりです。

var obsArray = new kendo.data.ObservableArray(scope.gridData);
this.gridDataSource = new kendo.data.DataSource({
     data: obsArray
 });
 obsArray.bind("change", function (e) {
     console.log(e.action, e.field);
 });

「scope.gridData」は元のデータモデルです。チェックボックスをクリックすると、observableArray は変更されますが、「scope.gridData」は変更されません。「scope.gridData」を変更するには、「change」イベントをリッスンして「scope.gridData」を手動で変更したいのですが、「change」イベントはトリガーされません。

私が間違っていることへの提案と、より良い解決策があるかもしれません。

4

3 に答える 3

1

これを読む

あなたの問題は、剣道がスコープオブジェクトのコピーを使用することです

于 2015-03-20T01:07:06.233 に答える
0

これはあなたを助けるかもしれません & これは正しい図ではありませんが、私はあなたの問題に似たこのような例を1つ行いました

 var contentData = [
      { organization: 'Nihilent', os: 'Window' }
    ];

    var nihl = contentData[0];

    var viewModel = kendo.observable({
      gridSource: new kendo.contentData.DataSource({
        contentData: contentData
      })
    });

    kendo.bind($(document.body), viewModel);

    contentData.push({ organization: 'Dhuaan', os: 'Android' });

    nihl.set('os', 'iOS');
于 2016-08-11T06:12:12.367 に答える