我正在用打字稿的预期语言构建一个angular2应用程序,我在第三方打字时遇到了很多问题,我正在处理这些打字稿问题。所以我大胆地决定在纯javascript中尝试一下。疯了吧?鉴于在网络上找不到任何帮助。
但是一切都运行良好,有一个例外,我无法通过单向绑定控件来工作。我正在使用ES7转换器,因此一些注释甚至可以工作!所以最后它看起来与打字稿非常相似(当然打字除外)。
<results [results]="results"></results>
@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:模板解析错误: 无法绑定到“结果”,因为它不是已知的本机属性
但不知何故,数据还没有通过。有什么想法吗?
答案 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(){};
}
......它现在有效!