NgFor
我在通过with渲染的动态添加的 CKEditors 遇到问题angular@2.0.0-alpha.44
。
@Directive({
selector: 'textarea'
})
class CKEditor {
constructor(_elm: ElementRef) {
CKEDITOR.replace(_elm.nativeElement);
}
}
@Component({
selector: 'my-app',
})
@View({
directives: [NgFor, CKEditor],
template: `
<div *ng-for="#item of items">
{{ item }}: <textarea>{{ item }}</textarea>
</div>
<button (click)="addItem()">Add</button>`
})
class AppComponent {
items = ['default_0', 'default_1'];
constructor() {
this.addItem();
}
addItem() {
var id = 'ckeditor_inst_' + this.items.length;
this.items.push(id);
}
}
您可以看到三个正常工作的 CKEditor。然后单击底部的“添加”按钮,它会破坏容器中的最后一个 CKEditor,您甚至可以写入它,如果您按下任何工具栏按钮,它会抛出:
Uncaught TypeError: Cannot read property 'getSelection' of undefined
.
有趣的是,只有最后一个 CKEditor 坏了,其他两个工作。Angular2 似乎以某种方式操纵了破坏 CKEditor 的最后一个元素。
我记得使用相同的方式添加新的 CKEditor angular@2.0.0-alpha.35
,我认为它在那里工作,但也许我只是没有注意到。版本angular@2.0.0-alpha.47
是一样的。