意外的指令值' undefined'在组件视图上(角度2.0)

时间:2015-05-31 06:18:50

标签: javascript angular annotations

我使用角度2.0的最新alpha版本,然后我使用es5作为它的代码。当我在视图注释中添加指令时遇到错误。

plunkr: http://plnkr.co/edit/eJqmvaiDyypPOexr0IgF

place.annotations = [
    new angular.ComponentAnnotation({
        selector: 'ph-place',
        injectables: [Service.Places]
    }),
    new angular.ViewAnnotation({
        template: '<ul><li *for="#place of places">{{ place }}</li></ul>',
        directives: [angular.For]
    })
];

2 个答案:

答案 0 :(得分:2)

来自gdi2290的github angular 2.0问题的评论

  

@VirtualOverride问题是angular.io上的文档仍然过时了。   这是你使用alpha.25的例子.plnkr.co/edit/ks0Sbv?p=preview重构了一下,并在Utils中做了一个帮助注释。如果您愿意,我还会添加原来的那个&#34;

我需要做一些改变:

主要问题,在指令设置中将注射器更改为appInjector,已使用新的alpha版本进行了更改。

new angular.ComponentAnnotation({
        selector: 'ph-place',
        appInjector: [Service.Places]
    }),

更改为NgFor:

 new angular.ViewAnnotation({
        template: '<ul><li *ng-for="#place of places">{{ place }}</li></ul>',
        directives: [angular.NgFor]
    })

<强> Demo

答案 1 :(得分:0)

该指令&#34; For&#34;现在已改为NgFor:

place.annotations = [
    new angular.ComponentAnnotation({
        selector: 'ph-place',
        injectables: [Service.Places]
    }),
    new angular.ViewAnnotation({
        template: '<ul><li *ng-for="#place of places">{{ place }}</li></ul>',
        directives: [angular.NgFor]
    })
];