Angular + Jquery 数据表响应不工作
Angular + Jquery Datatable responsivness not working
我正在使用以下扩展程序 https://l-lin.github.io/angular-datatables/#/getting-started
让我的 jquery 数据table 响应。在我的 angular.json 文件中,我添加了以下行。
"styles": [
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/material-icons/css/material-icons.css",
"node_modules/datatables.net-colreorder-dt/css/colReorder.dataTables.css",
"node_modules/ngx-toastr/toastr.css",
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.js",
"node_modules/datatables.net/js/jquery.dataTables.js",
"node_modules/datatables.net-colreorder/js/dataTables.colReorder.js"
]
然后我在 app.module
中导入了 DataTableModule
imports: [
CommonModule,
BrowserModule,
DataTablesModule,
HttpClientModule,
BrowserAnimationsModule,
ToastrModule.forRoot(),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: httpTranslateLoader,
deps: [HttpClient]
}
}),
FormsModule,
ReactiveFormsModule,
AppRoutingModule,
NgbModule
],
然后我创建了以下 table 这里是那个 table
的 html
<table datatable [dtOptions]="dtOptions" class="display table table-striped table-bordered dt-responsive row-border hover" *ngIf="employees">
<thead>
<tr>
<th>{{ 'employee.Number' | translate }} </th>
<th>{{'employee.UserName' | translate}}</th>
<th>
<span class="material-icons" (click)="addEmployee()" href="javascript:void(0);">
add_box
</span>
</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let employee of employees">
<td>{{ employee.id }}</td>
<td>{{ employee.userName }}</td>
<td>
<a [title]="employee.id + ' employee-details'" [routerLink]="['/employees', employee.id]">
<span class="material-icons md-18">
edit
</span>
</a>
</td>
</tr>
</tbody>
</table>
这里是table的打字稿文件。
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { Employee } from '../models/Employee';
import { UserService } from '../services/employee.service';
@Component({
selector: 'app-employees',
templateUrl: './employees.component.html',
styleUrls: ['./employees.component.css']
})
export class EmployeesComponent implements OnInit {
dtOptions: DataTables.Settings = {};
public employees: Employee[];
constructor(private employeeService: UserService ,private http: HttpClient) { }
ngOnInit(): void {
this.dtOptions = {
pagingType: 'full_numbers',
pageLength: 10,
processing: true,
responsive: true,
columnDefs: [{
targets: [6],
orderable: false,
width: "50px"
}]
};
this.employeeService.getEmployees().subscribe(result => {
this.employees = result;
}, error => {
console.log(error)
});
}
}
遗憾的是它不起作用任何帮助将不胜感激。谢谢。
请访问 Download Page,并确保select 您计划在 DataTable 中使用的所有内容。在您的 angular.json 文件中,我可以告诉您缺少实际启用 responsive: true,
选项所需的两个文件。
您没有为 DataTables 响应选项包含 JS 脚本和 CSS 样式表。
这里是下载脚本和样式表的链接:
https://cdn.datatables.net/responsive/2.2.9/css/responsive.dataTables.min.css
https://cdn.datatables.net/responsive/2.2.9/js/dataTables.responsive.min.js
下载这些文件并确保在您的 Angular.json 文件中正确引用它们。
即
"styles": [
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/material-icons/css/material-icons.css",
"node_modules/datatables.net-colreorder-dt/css/colReorder.dataTables.css",
"node_modules/datatables.net-responsive-dt/css/responsive.dataTables.min.css",
"node_modules/ngx-toastr/toastr.css",
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.js",
"node_modules/datatables.net/js/jquery.dataTables.js",
"node_modules/datatables.net-colreorder/js/dataTables.colReorder.js",
"node_modules/datatables.net-responsive/js/dataTables.responsive.min.js"
]
我正在使用以下扩展程序 https://l-lin.github.io/angular-datatables/#/getting-started
让我的 jquery 数据table 响应。在我的 angular.json 文件中,我添加了以下行。
"styles": [
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/material-icons/css/material-icons.css",
"node_modules/datatables.net-colreorder-dt/css/colReorder.dataTables.css",
"node_modules/ngx-toastr/toastr.css",
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.js",
"node_modules/datatables.net/js/jquery.dataTables.js",
"node_modules/datatables.net-colreorder/js/dataTables.colReorder.js"
]
然后我在 app.module
中导入了 DataTableModuleimports: [
CommonModule,
BrowserModule,
DataTablesModule,
HttpClientModule,
BrowserAnimationsModule,
ToastrModule.forRoot(),
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: httpTranslateLoader,
deps: [HttpClient]
}
}),
FormsModule,
ReactiveFormsModule,
AppRoutingModule,
NgbModule
],
然后我创建了以下 table 这里是那个 table
的 html<table datatable [dtOptions]="dtOptions" class="display table table-striped table-bordered dt-responsive row-border hover" *ngIf="employees">
<thead>
<tr>
<th>{{ 'employee.Number' | translate }} </th>
<th>{{'employee.UserName' | translate}}</th>
<th>
<span class="material-icons" (click)="addEmployee()" href="javascript:void(0);">
add_box
</span>
</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let employee of employees">
<td>{{ employee.id }}</td>
<td>{{ employee.userName }}</td>
<td>
<a [title]="employee.id + ' employee-details'" [routerLink]="['/employees', employee.id]">
<span class="material-icons md-18">
edit
</span>
</a>
</td>
</tr>
</tbody>
</table>
这里是table的打字稿文件。
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { Employee } from '../models/Employee';
import { UserService } from '../services/employee.service';
@Component({
selector: 'app-employees',
templateUrl: './employees.component.html',
styleUrls: ['./employees.component.css']
})
export class EmployeesComponent implements OnInit {
dtOptions: DataTables.Settings = {};
public employees: Employee[];
constructor(private employeeService: UserService ,private http: HttpClient) { }
ngOnInit(): void {
this.dtOptions = {
pagingType: 'full_numbers',
pageLength: 10,
processing: true,
responsive: true,
columnDefs: [{
targets: [6],
orderable: false,
width: "50px"
}]
};
this.employeeService.getEmployees().subscribe(result => {
this.employees = result;
}, error => {
console.log(error)
});
}
}
遗憾的是它不起作用任何帮助将不胜感激。谢谢。
请访问 Download Page,并确保select 您计划在 DataTable 中使用的所有内容。在您的 angular.json 文件中,我可以告诉您缺少实际启用 responsive: true,
选项所需的两个文件。
您没有为 DataTables 响应选项包含 JS 脚本和 CSS 样式表。
这里是下载脚本和样式表的链接: https://cdn.datatables.net/responsive/2.2.9/css/responsive.dataTables.min.css https://cdn.datatables.net/responsive/2.2.9/js/dataTables.responsive.min.js
下载这些文件并确保在您的 Angular.json 文件中正确引用它们。
即
"styles": [
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/font-awesome/css/font-awesome.css",
"node_modules/material-icons/css/material-icons.css",
"node_modules/datatables.net-colreorder-dt/css/colReorder.dataTables.css",
"node_modules/datatables.net-responsive-dt/css/responsive.dataTables.min.css",
"node_modules/ngx-toastr/toastr.css",
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.js",
"node_modules/datatables.net/js/jquery.dataTables.js",
"node_modules/datatables.net-colreorder/js/dataTables.colReorder.js",
"node_modules/datatables.net-responsive/js/dataTables.responsive.min.js"
]