と呼ばれていません。私は、角流星とngテーブルを使用しています。リファクタリングする前に、データがテーブルに表示されます。ただし、ES6構文にリファクタリングした後は、データは表示されなくなります。ES6角度-流星NG-テーブルのgetData関数は、私はES6に私のコードをリファクタリングしようとしている
class MyController {
constructor($scope, $reactive, NgTableParams, MyService) {
'ngInject';
$reactive(this).attach($scope);
this.subscribe('myCollection');
this.myService = MyService;
this.helpers({
items() {
return this.myService.getItems();
},
itemTableParams() {
const data = this.getReactively('items');
return new NgTableParams({
page: 1,
count: 10
}, {
total: data.length,
getData: (params) => {
// not called
}
});
}
});
}
}
class MyService {
getItems() {
return MyCollection.find({}, {
sort: {
dateCreated: -1
}
});
}
}
export default angular.module('MyModule', [angularMeteor, ngTable, MyService])
.component('MyComponent', {
myTemplate,
controllerAs: 'ctrl',
controller: MyController
})
.service('MyService', MyService);
const data
が読み込まなっているが、getData
が呼び出さ取得されていません。これは、リファクタリング、コードのスニペットです。テンプレートの表はng-table
属性の値としてctrl.itemTableParams
を使用しており、そのng-repeat
はitem in $data
です。 getData
関数が呼び出されていない理由として
は、誰もがアイデアを持っていますか?ヘルプは非常に高く評価されます。ありがとう!
P.S. 私はconst tableParams
からNgTableParams
を設定し、reload()
関数を呼び出し、getData
がトリガされるようにしてください。しかし、それはテーブル上のデータをレンダリングしていないということです。私はgetData
にデータを記録するとき、それはそれでアイテムを持っている
itemTableParams() {
const data = this.getReactively('items');
const tableParams = new NgTableParams({
page: 1,
count: 10
}, {
total: data.length,
getData: (params) => {
}
});
tableParams.reload(); // triggers the getData function
return tableParams;
}
<table ng-table="ctrl.itemTableParams">
<tr ng-repeat="item in $data track by $index">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.dateCreated}}</td>
</tr>
</table>
:私は、としてテーブルを設定します。しかし、私が言ったように、それはテーブルにレンダリングされていません。
コンソールですべてのエラーを取得するのですか?あなたの 'items'メソッドは' this.myService.getItems() 'を呼び出しますが、サービスは' getItems'ではなく 'getInputs'メソッドを持っています。これはちょうど、あなたの実際のアプリにも質問ですか? – noppa
@noppa申し訳ありませんが、それはアプリではなく、質問のタイプミスでした。 – dork