OK、テーブルが更新されない理由は、購入ボタンをクリックしたときにテーブルを定義するコードをコントローラが再実行しないためです。これを変更して、コンフィグの配列を$scope.carsTableColumnDefinition
に直接代入するのではなく、代わりに配列を返すgetDefinition
という関数を定義しました。その後、$scope.buyCar = function (car){}
では、私は関数を呼び出します。 - それをチェックアウト
$scope.carsTableColumnDefinition = getDefinition();
...
//Then inside the buyCar function I have:
$scope.buyCar = function (car) {
$scope.showColumn = !$scope.showColumn;
//now refresh by calling the get-definition function:
$scope.carsTableColumnDefinition = getDefinition();
};
..
//Finally, this is my getDefinition function:
function getDefinition(){
return [
{
columnHeaderDisplayName: 'Model',
displayProperty: 'name',
sortKey: 'name',
columnSearchProperty: 'name',
visible: $scope.showColumn
},
{
columnHeaderTemplate: '<span><i class="glyphicon glyphicon-calendar"></i> Model Year</span>',
template: '<strong>{{ item.modelYear }}</strong>',
sortKey: 'modelYear',
width: '12em',
columnSearchProperty: 'modelYear'
},
{
columnHeaderTemplate: '<span><i class="glyphicon glyphicon-usd"></i> Price</span>',
displayProperty: 'price',
cellFilter: 'currency',
sortKey: 'price',
width: '9em',
columnSearchProperty: 'price'
},
{
columnHeaderDisplayName: 'Buy',
templateUrl: 'src/tablelite/docs/buyCell.html',
width: '4em'
}
];
}
私はupdated the jsfiddle:だからここ
は、私が行った変更です。
ダイナミックテーブルを使用するHTMLテンプレートを表示します。これは、「showColumn」で「トグル」を実装する方法の問題です。 – ishmaelMakitla
こんにちは、お返事ありがとう、すべてのコードは、jsfiddleリンクに表示される必要があります。ありがとう。 – J145
ここで(行番号)はモデル列のvisibleプロパティに使用される変数ですか?私はjsfiddleを見逃したかもしれない。 – ishmaelMakitla