Angular2:整合ng2-select

时间:2016-03-29 01:46:41

标签: angular typescript

我面临着非常严峻的问题,我希望有人可以帮助我!我已经在这里找到了很多关于同样问题的问题,但是我应用了找到的解决方案,但它仍然没有用!

所以我在Angular 2中有一个应用程序,我正在尝试集成ng2-select,并且它返回了无聊的错误:

  

angular2-polyfills.js:332错误:SyntaxError:意外的令牌<

我知道每个人都在说我的System.config有问题,但我无法解决它!

所以有我的代码!

System.config

System.config({
map: {
    'ng2-bootstrap': 'node_modules/ng2-bootstrap',
    'ng2-select': 'node_modules/ng2-select'
},
packages: {
    src: {
        format: 'register',
        defaultExtension: 'js'
    }
}
});
System.import('src/main').then(null, console.error.bind(console));

main.ts

import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from "./components/app/app.component";

import 'ng2-select';
import 'ng2-bootstrap';

bootstrap(<any> AppComponent);

my Component

import {Component} from 'angular2/core';
import {select} from "ng2-select";

@Component({
    templateUrl: 'src/views/lead/lists.view.html',
    directives: [select],
})
export class LeadListsComponent {
    team: string = "Ringo";
    teams: string[] = ["John", "Paul", "George", "Ringo"];
}

I have the files on the node_modules/ng2-angular properly I think! There is the print

但是只有TS文件......可能是那个问题?我该怎么办?

----- ----- UPDATE

还有我的tsconfig.json!

{
    "compilerOptions": {
        "target": "es5",
        "module": "system",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false
    },
    "exclude": [
        "node_modules",
        "typings/main",
        "typings/main.d.ts"
    ]
}

提前致谢!

4 个答案:

答案 0 :(得分:3)

如果你正在使用ng2-select,那么事情已经发生了一些变化。您必须将systemjs配置更改为以下内容:

<强> systemjs.config.js

map: {
   ...,

   'ng2-select': 'node_modules/ng2-select',

   ...
},
packages: {
  ....,
  'ng2-select': {main:'ng2-select.js', defaultExtension: 'js'}
}

在模块中添加以下导入语句

import { SelectModule } from "ng2-select/ng2-select";

然后将“SelectModule”添加到NgModule.imports数组。

现在在您的组件中添加以下import语句:

import { SelectComponent } from "ng2-select/ng2-select";

答案 1 :(得分:2)

我认为您的问题是当您执行导入时选择您的姓名是错误的:

MyComponent中你应该像这样把它拉进来:

import {Select} from "ng2-select";

选择中的S大写。通常当你得到:

  

angular2-polyfills.js:332错误:SyntaxError:意外的令牌&lt;

这意味着404错误,您的模块未正确加载。但是ng2选择导出Select而不是select

您可能还需要这样做:

import {Select} from "ng2-select/select";

我不是100%确定npm如何将它加载到您的节点模块目录中,因为我没有使用它。

答案 2 :(得分:1)

对我有用的是以下

systemjs.config.js

中的

地图内添加: - (void) layoutSubviews { //This method when auto layout engine finishes }

内添加:'ng2-select': 'node_modules/ng2-select'

然后像这样导入:'ng2-select': {main:'ng2-select.js', defaultExtension: 'js'}

答案 3 :(得分:-1)

从&#39; ng2-select&#39;中导入{SELECT_DIRECTIVES};