angular 2 rc2 种子项目中的 ng2-bootstrap btnRadio。与 ngModel 的双向绑定被破坏了?

ng2-bootstrap btnRadio in angular 2 rc2 seed project. Two-way binding to ngModel is broken?

我正在尝试在 angular 2 rc2 种子项目中使用 ng2-bootstrap 单选按钮。 以下代码在我们的 angular 2 rc1 项目中没有任何问题。现在我正在尝试使用 https://github.com/mgechev/angular2-seed 作为基础来创建一个种子项目,但无法正确完成。

我按以下方式使用 ng2-bootstrap 单选按钮指令:

<div class="btn btn-primary" [(ngModel)]="mode" btnRadio="EDITOR" uncheckable> 
     Editor 
</div>

我在 seed.config.ts 中包含了 ng2-bootstrap 和 moment 库。我尝试了很多变体(也有 ng2-bootstrap/ng2-bootstrap 等)

paths: {
  ...
  'ng2-bootstrap': `${this.NPM_BASE}/ng2-bootstrap/`,
  'moment': `${this.NPM_BASE}moment/`
},
packages: {
    ...
    'ng2-bootstrap': { main: "ng2-bootstrap.js", defaultExtension: 'js' },
    'moment': { main: "moment.js", defaultExtension: 'js' },
}

我导入以下指令

import { BUTTON_DIRECTIVES } from 'ng2-bootstrap/ng2-bootstrap';
import { ButtonRadioDirective } from 'ng2-bootstrap/ng2-bootstrap';

并由我的组件使用它

@Component({
  moduleId: module.id,
  selector: "editor",
  templateUrl: "editor.html",
  directives: [FORM_DIRECTIVES, CORE_DIRECTIVES, BUTTON_DIRECTIVES, 
  CodeMirrorComponent, ButtonRadioDirective]
})

我构建项目没有任何问题,但是当我 运行 服务器时,我获得以下 运行 时间异常:

ORIGINAL EXCEPTION: No value accessor for ''

我确定这里与 ngModel 的双向绑定被破坏了。我已经将此代码与 rc1 捆绑包一起使用,但没有种子项目。现在我不确定,可能是什么问题 - 新的 angular 版本,或使用构建系统(在我的情况下 - gulp)。

希望大家帮忙出出主意。非常感谢。

自 2016 年 6 月 21 日起编辑

使用的包版本如下:

"dependencies": {
  "@angular/common": "2.0.0-rc.2",
  "@angular/compiler": "2.0.0-rc.2",
  "@angular/core": "2.0.0-rc.2",
  "@angular/forms": "^0.1.0",
  "@angular/platform-browser": "2.0.0-rc.2",
  "@angular/platform-browser-dynamic": "2.0.0-rc.2",
  "@angular/router": "3.0.0-alpha.6",
  "es6-module-loader": "^0.17.8",
  "core-js": "^2.4.0",
  "rxjs": "5.0.0-beta.6",
  "systemjs": "0.19.26",
  "zone.js": "^0.6.12",
  "bootstrap": "^3.3.6",
  "ng2-bootstrap": "^1.0.17"
}

以下应该有效:

进口

import {AlertComponent} from 'ng2-bootstrap/ng2-bootstrap';

路径

'ng2-bootstrap': `${this.NPM_BASE}ng2-bootstrap/bundles/ng2-bootstrap.js`,
'moment/*': `${this.NPM_BASE}moment/*`,

'ng2-bootstrap': {defaultExtension: 'js'},
moment: { main: 'moment.js', defaultExtension: 'js' }

谢谢大家,我已经找到了问题和(暂时)解决方案。问题是 ng2-bootstrapangular.forms 之间的冲突(我的版本是 0.1.0)。该问题与此问题有关 https://github.com/valor-software/ng2-bootstrap/issues/627 .

我现在不使用 angular 表格,并且在 main.ts

中简单地评论了以下几行
//import { disableDeprecatedForms, provideForms } from '@angular/forms/index';

bootstrap(AppComponent, [
   //disableDeprecatedForms(),
   //provideForms(),
   APP_ROUTER_PROVIDERS,
   {
      provide: APP_BASE_HREF,
      useValue: '<%= APP_BASE %>'
   }
]);

我的代码现在可以正常工作了。