Я пытаюсь использовать ng-table
в приложении Angular 1.5 и столкнулся с проблемой, которую я не могу исправить. Использование базовой установки отсюда (с небольшими изменениями, как мое приложение имеет различный набор компонентов вверх), я получаю ту же ошибку:ng-table: Аргумент «controller» не является функцией, получил объект
Error: [ng:areq] Argument 'MyTableController' is not a function, got Object
Мой код это ниже. Любая помощь приветствуется.
table.controller.js
import 'ng-table';
class MyTableController {
constructor(NgTableParams) {
var data = [
{ name: "Moroni", age: 50 },
{ name: "Enos", age: 34 }
];
this.tableParams = new NgTableParams({}, {
dataset: data
});
}
}
MyTableController.$inject = ['NgTableParams'];
table.routes.js
routes.$inject = ['$stateProvider'];
export default function routes($stateProvider) {
$stateProvider
.state('table', {
url: '/data',
template: require('./table.html'),
controller: 'MyTableController',
controllerAs: 'table'
});
}
index.js
import angular from 'angular';
import uirouter from 'angular-ui-router';
import './table.css';
import routing from './table.routes';
import MyTableController from './table.controller';
// import mainTable from './mainTable.service';
// Import other dashboard services here
export default angular.module('app.table', [uirouter])
.config(routing)
.controller('MyTableController', MyTableController)
.name;
app.js
// import angular and ui-router
import angular from 'angular';
import { ngTable } from 'ng-table';
import uirouter from 'angular-ui-router';
// import CSS and bootstrap
import './app.css';
import 'bootstrap/dist/css/bootstrap.css';
// import 'font-awesome/css/font-awesome.css';
// import NavBar
import Components from './components';
// import config file and modules here
import routing from './app.config';
import home from './features/home';
import facility from './features/facility';
import dashboard from './features/dashboard';
import table from './features/data-tables';
angular.module('app', [ngTable.name, uirouter, home, facility, dashboard, table, Components])
.config(routing);
table.html
<table ng-table="$ctrl.tableParams" show-filter="true" class="table table-condensed table-bordered">
<tr ng-repeat="user in $data">
<td data-title="'Name'" header-class="'text-left'" sortable="'name'" filter="{ 'name': 'text' }">
{{user.name}}
</td>
<td data-title="'Age'" header-class="'text-right'" sortable="'age'" filter="{ 'age': 'text' }">
{{user.age}}
</td>
</tr>
</table>
Вы не экспортируете свой класс MyTableController в файл table.controller.js. Может, в этом и проблема. – Robba
О, ну это глупое раздражение. Это была проблема. Спасибо, что заметили мое глупое упущение. –
Не беспокойтесь, иногда все, что вам нужно, это вторая пара глаз :) – Robba