簡體   English   中英

用純Java語言綁定Angular2組件的一種方法

[英]One Way Binding Angular2 Component With Pure Javascript

我使用預期的打字稿語言構建了一個angular2應用程序,並且在使用第三方輸入時遇到了很多問題,並且在解決這些打字稿問題時費盡心思。 因此,我大膽地決定改為嘗試使用純JavaScript。 瘋了吧? 鑒於在網絡上找不到非常有用的幫助。

但是,除了一個例外,一切都工作得很好,我無法以一種綁定控件的方式來工作。 我正在使用ES7編譯器,因此某些注釋甚至可以工作! 因此,最后它看起來與打字稿非常相似(當然除了打字)。

應用程序組件html代碼段

<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(){};
}

在打字稿中,這工作正常。 我的ResultsComponent中的results屬性將設置為應用程序組件中設置的值。 在純JavaScript版本中,結果為null 代碼對@Input裝飾器做出了反應,因為如果我拿走它,它會抱怨它丟失了

例外:模板解析錯誤:由於它不是已知的本機屬性,因此無法綁定到“結果”

但是某種程度上數據沒有通過。 有任何想法嗎?

通過此鏈接 ,我在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(){};
}

...並且現在可以使用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM