0
私はブレッドクラムコンポーネントを持っています。それはJavaScriptにコンパイルされ、希望の結果をレンダリングするようにうまく動作しますが、IDEは私が訂正できないエラーを投げます。次のようにその氏は述べています: - 以下のように私のブレッドクラムのためTypeScriptスローエラー "プロパティ 'breadcrumb'がタイプ 'データ'に存在しません。"
[ts] Property 'breadcrumb' does not exist on type 'Data'.
コードは次のとおりです。 -
import { Component } from '@angular/core';
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import 'rxjs/add/operator/filter';
import { BreadcrumbModel } from './breadcrumb.model';
@Component({
selector: 'breadcrumb',
template: `
<ol class="breadcrumb">
<li *ngFor="let breadcrumb of breadcrumbs; let last = last">
<a [routerLink]="breadcrumb.url">{{breadcrumb.label}}</a>
</li>
</ol>`
})
export class BreadcrumbComponent {
breadcrumbs: Array<BreadcrumbModel>;
constructor(private router: Router, private route: ActivatedRoute) { }
ngOnInit() {
this.router.events
.filter(event => event instanceof NavigationEnd)
.subscribe(event => { // note, we don't use event
this.breadcrumbs = [];
let currentRoute = this.route.root,
url = '';
do {
let childrenRoutes = currentRoute.children;
currentRoute = null;
childrenRoutes.forEach(route => {
if (route.outlet === 'primary') {
let routeSnapshot = route.snapshot;
url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
this.breadcrumbs.push({
label: route.snapshot.data.breadcrumb,
url: url
});
currentRoute = route;
}
})
} while (currentRoute);
})
}
}
次のようにブレッドクラムモデルのコードは次のとおりです。 -
export class BreadcrumbModel{
label:string;
url:string;
}
エラーIブラウザには次のように入ります: -
[at-loader] src\app\shared\core\breadcrumb\breadcrumb.component.ts:34:44
Property 'breadcrumb' does not exist on type '{ [name: string]: any; }'.
errors @ client?cd17:80
sock.onmessage @ socket.js?e5d0:37
EventTarget.dispatchEvent @ eventtarget.js?3e89:51
(anonymous) @ main.js?45b8:274
SockJS._transportMessage @ main.js?45b8:272
EventEmitter.emit @ emitter.js?927b:50
WebSocketTransport.ws.onmessage @ websocket.js?c17e:35
wrapFn @ zone.js?fad3:1039
ZoneDelegate.invokeTask @ zone.js?fad3:275
Zone.runTask @ zone.js?fad3:151
ZoneTask.invoke @ zone.js?fad3:345
ターゲットをES5からES6に変更したくない。これは実行可能な解決策ではないようです。 IDEのスクリーンショットは次のとおりです。 -
問題を解決するためにお手伝いください。このエラーが発生すると、TSLintはブラウザに警告を表示しません。
感謝をCustom Preloading Strategyを読み、
app/selective-preloading-strategy.ts
サンプルファイルまでスクロール:もちろん、決してそれがいずれかの方法で動作しますので、「に持っている」が、使用することを文句を停止する活字体コンパイラを取得することはありませんそれを指摘する。私はそれを試して、それは動作します。 –