angular 2:view.setLocal('\ $ implicit',change.item);不赞成用什么?

时间:2016-06-25 14:07:30

标签: angular

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上下文? 问候

肖恩

2 个答案:

答案 0 :(得分:3)

解决方案是: view.context.$implicit = change.item; this.views.set(change.item, view);

答案 1 :(得分:2)

EmbeddedViewRef.setLocalgetLocal已被删除。

使用EmbeddedViewRef.context访问上下文。