グリッドから列を追加/削除してデータを更新しようとしています。私たちは、ボタンを '追加' をクリックすると、私はcolumnDefs
とdata
を更新するために期待していのに対し、ここでPlunker角型UIグリッド - 列の追加または削除とデータの更新
HTML
<div ng-controller="MainCtrl">
<div id="grid1" ui-grid="settings" class="grid"></div>
<button ng-click="add();">Add</button>
</div>
が
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.result = [{
"firstName": "Cox",
"lastName": "Carney",
"company": "Enormo",
"employed": true
}, {
"firstName": "Lorraine",
"lastName": "Wise",
"company": "Comveyer",
"employed": false
}, {
"firstName": "Nancy",
"lastName": "Waters",
"company": "Fuelton",
"employed": false
}];
$scope.column_defs = [{
name: 'First Name',
field: 'firstName'
}, {
name: 'Last Name',
field: 'lastName'
}, {
name: 'Company',
field: 'company'
}];
$scope.settings = {
data: $scope.result,
columnDefs: $scope.column_defs
};
$scope.add = function() {
$scope.column_defs = [{
name: 'First Name',
field: 'firstName'
}, {
name: 'Last Name',
field: 'lastName'
}, {
name: 'Company',
field: 'company'
}, {
name: 'Employed',
field: 'employed'
}];
$scope.result = [{
"firstName": "Cox",
"lastName": "Carney",
"company": "Enormo",
"employed": true
}, {
"firstName": "Lorraine",
"lastName": "Wise",
"company": "Comveyer",
"employed": false
}];
};
}]);
JSで、何も起こりません。
ありがとうございます。
だから、あなたは意味' $のscope.column_defs'を有するので使用しての使用はない、その代わりに、我々は直接更新する必要があります$ scope.settings.columnDefs'を毎回実行します。私はngグリッドで思い出しました、 '$ scope.settings.columnDefs = 'column_defs''を持ち、' $ scope.column_defs'が変更されるたびにグリッドが更新されます。 – moustacheman
はい。それはデータ($ scope.settings.data = 'result'を行うことができます)でそのように動作しますが、columnDefsでは機能しません – fikkatra
あなたは正しいですが、異なるアプローチを試みましたが成功しませんでした。あなたの答えに同意してください。 – moustacheman