单向绑定Angular2组件与纯Javascript

时间:2016-08-05 00:20:34

标签: javascript data-binding angular

我正在用打字稿的预期语言构建一个angular2应用程序,我在第三方打字时遇到了很多问题,我正在处理这些打字稿问题。所以我大胆地决定在纯javascript中尝试一下。疯了吧?鉴于在网络上找不到任何帮助。

但是一切都运行良好,有一个例外,我无法通过单向绑定控件来工作。我正在使用ES7转换器,因此一些注释甚至可以工作!所以最后它看起来与打字稿非常相似(当然打字除外)。

app component html snippet

<results [results]="results"></results>

ResultsComponent

@Component({
    selector: 'results',
    templateUrl: '<div *ngFor="let result of results"><result [result]="result"></result></div>',
    directives: [ResultComponent]
})
export class ResultsComponent {
    @Input() results;
    constructor(){};
}

在Typescript中这很好用。我的ResultsComponent中的results属性将设置为app组件中设置的值。在纯JavaScript版本中,结果是 null 。代码正在对@Input装饰器做出反应,因为如果我把它拿走就会抱怨它丢失了

  

EXCEPTION:模板解析错误:   无法绑定到“结果”,因为它不是已知的本机属性

但不知何故,数据还没有通过。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于this link,我在Component装饰器的输入部分找到了答案。我改变了......

@Component({
    selector: 'results',
    templateUrl: '<div *ngFor="let result of results"><result [result]="result"></result></div>',
    directives: [ResultComponent]
})
export class ResultsComponent {
    @Input() results;
    constructor(){};
}

...到......

@Component({
    selector: 'results',
    templateUrl: '<div *ngFor="let result of results"><result [result]="result"></result></div>',
    directives: [ResultComponent],
    inputs: ['results']
})
export class ResultsComponent {
    constructor(){};
}

......它现在有效!