Angular 2错误没有导出的成员

时间:2017-08-04 08:43:17

标签: angular filtering ngtable

我是Angular 2的新手,并且已经使用了valor软件基本演示表,但有几点我需要帮助。

1)当我为项目运行ngserve时,我得到: 下面针对"显示的许多相同错误没有导出的成员' Renderer2'。"。     [默认] C:\ wamp \ www \ nationalgrid \ public_cli \ node_modules @ ng-bootstrap \ ng-bootstrap \ buttons \ radio.d.ts:1:10 Module'" C:/ wamp / www / nationalgrid / public_cli / node_modules //索引"'没有导出的成员' Renderer2'。

我不想使用渲染2,因为它是角度4,并且此客户端系统暂时必须处于角度2。我导入或完成了什么来获取此错误?

的package.json

{
"name": "a2-cli-app",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "ng serve",
"lint": "tslint "src/**/*.ts"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"": "^2.2.1",
"": "^2.2.1",
"": "^2.2.1",
"": "^2.2.1",
"": "^2.2.1",
"": "^2.2.1",
"": "^2.2.1",
"": "^3.2.1",
"angular2-cookie": "^1.2.5",
"bootstrap": "^3.3.7",
"chart.js": "^2.4.0",
"core-js": "^2.4.1",
"ng2-bs3-modal": "^0.10.4",
"ng2-charts": "1.4.1",
"ng2-file-upload": "1.1.4-2",
"ng2-pagination": "1.0.1",
"ng2-toastr": "1.3.2",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"": "^2.2.1",
"": "2.5.38",
"": "^6.0.42",
"angular-cli": "1.0.0-beta.21",
"codelyzer": "~1.0.0-beta.3",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.9",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "~2.0.3",
"webdriver-manager": "10.2.5",
"webpack": "^3.4.1"
}
}

如果您需要更多详细信息来帮助我,请告诉我您的需求。

2)关于你的valor简单数据表的过滤,如何将过滤设置为非敏感的情况,有人建议使用正则表达式,但我看不出它将如何应用于过滤器?

3)我可以在数据表示例中看到他们从table-data.ts获取数据作为数组我将我的数据作为数组从mysql数据库库进入该项目,但是如何将其分配给数据变量。

因为他们有私有数据:Array = TableData;,但是如果我尝试更改" TableData"除非我更新列数组定义以匹配我的传入数据,否则代码只会给我错误并且不会加载。

4)最后为了使我的文件更清晰,是否可以将列数组移动到一个新文件中并引用它,因为我的列数组比它们大得多?

他们的列数组

columns:Array = [
{title: 'Name', name: 'name'},
{title: 'Position', name: 'position', sort: ''},
{title: 'Office', className: ['office-header', 'text-success'], name:    'office', sort: 'asc'},
{title: 'Extn.', name: 'ext', sort: ''},
{title: 'Start date', className: 'text-warning', name: 'startDate'},
{title: 'Salary ($)', name: 'salary'},
];

提前致谢

2 个答案:

答案 0 :(得分:0)

让我们分开答案。

1)这些错误与ng-bootstrap有关,ng-bootstrap是与ngx-bootstrap(由valor- software开发的包)不同的包。在ng-bootstrap中,版本beta 25版本声明它需要角4.0.3。所以使用和旧版本将解决您的问题。

2)关于过滤,您不能按https://github.com/valor-software/ng2-table/issues/152中的说明将两个字符串转换为小写吗?

3)你收到了什么样的错误?您是否使用http调用来获取数据?您是否将数据分配给param的结果而不是observable?

4)当然可以,创建一个文件:' columns.ts'

export let columns: Array<any> = [
{title: 'Name', name: 'name'},
{title: 'Position', name: 'position', sort: ''},
{title: 'Office', className: ['office-header', 'text-success'], name:    'office', sort: 'asc'},
{title: 'Extn.', name: 'ext', sort: ''},
{title: 'Start date', className: 'text-warning', name: 'startDate'},
{title: 'Salary ($)', name: 'salary'},
];

然后您可以在需要使用它的地方导入它。

import { colums } from 'columns.ts';

答案 1 :(得分:0)

解决了第4点:

我创建了一个名为MyColumns.ts的文件,如下所示:

export const MyColumns:Array<any> = 
[ 
{title: 'Name', name: 'name'}, 
{title: 'Position', name: 'position', sort: ''},
... 
{title: 'Salary ($)', name: 'salary'},
 ]; 

然后在我的TableDemo.component.ts文件中,我最初拥有所有列表,我现在位于顶部:

import { MyColumns } from './mycolumns'; 

然后在我拥有列定义的地方之前:

columns = MyColumnsDef; 

希望在这一点上这有助于其他人。