0
我有TypeScript中的AngularJS組件news.component.ts,它調用google.service.ts通過一些將XML轉換爲JSON(不重要)的服務來獲取新聞RSS。爲什麼我在我的AngularJS(TypeScript)組件中獲取這些錯誤?
所以我在NewsComponent這個方法:
getNewsHeadlines(): any {
this.googleService.getNewsHeadlines().then(headlines => {
this.newsHeadlines = headlines;
this.$scope.$apply();
});
return;
}
我有這個模型每個新聞項定義:
export interface NewsHeadline {
title: string;
content: string;
description: string;
link: string;
}
我有這樣的方法在GoogleService服務:
getNewsHeadlines() {
const feed = 'http://rss.newsru.com/top/big/';
const url = 'https://api.rss2json.com/v1/api.json?rss_url=' + encodeURIComponent(feed);
return this.$http.get(url).then((response: any) => {
let items = response.data.items;
let results = items.map(result => {
let newsHeadline: NewsHeadline = {
title: 'string',
content: 'string',
description: 'string',
link: 'string'
};
return newsHeadline;
});
return this.$q.all(results);
});
};
爲什麼我一直在Chrome控制檯中收到這些錯誤消息?
我在GoogleService中的getNewsHeadlines方法是否正確寫入?
是什麼意思,當我點擊鏈接錯誤,還有噸力所能及不可讀的垃圾,這並不說明什麼的。
我認爲錯誤是因爲你正在做的'$範圍$適用()'當消化週期已在進行中。 Angular的內置服務,包括'$ http'自動觸發摘要循環。您不必在代碼中執行此操作。 –
是的,您正在使用'$ scope。$ apply()'不必要的。 '$ http'服務嵌入消化控制,因爲它位於angularjs上下文中。例如,您應該在外部發射器中使用'$ apply',例如直接附加到DOM的事件。 –