angular 2: view.setLocal('\$implicit', change.item);
曾经工作但是用rc.1删除了 任何有关尝试使其工作的想法:
http://teropa.info/blog/2016/03/06/writing-an-angular-2-template-directive.html
ngDoCheck():void {
if (this.differ) {
let changes = this.differ.diff(this.items);
if (changes) {
console.log('template', this.template);
changes.forEachAddedItem((change) => {
let view = this.viewContainer.createEmbeddedView(this.template);
//todo: fix as broken in rc.1
//view.setLocal('\$implicit', change.item);
this.views.set(change.item, view);
});
changes.forEachRemovedItem((change) => {
let view = this.views.get(change.item);
let idx = this.viewContainer.indexOf(view);
this.viewContainer.remove(idx);
this.views.delete(change.item);
});
}
}
}
如何将setLocal更改为新版本的set上下文? 问候
肖恩
答案 0 :(得分:3)
解决方案是:
view.context.$implicit = change.item;
this.views.set(change.item, view);
答案 1 :(得分:2)
EmbeddedViewRef.setLocal
和getLocal
已被删除。
使用EmbeddedViewRef.context
访问上下文。