$ ng build --prod 日期:2018-12-06T18:43:56.689Z 哈希:e36e17503416de0fc128 时间:7480ms 块{0} runtime.ec2944dd8b20ec099bf3.js(运行时)1.44 kB [entry] [rendered] 块{1} main.9868d9b237c3a48c54da.js(主要)128个字节[初始] [呈现] 块{2} polyfills.85f47f0bf59079cbc23a.js(polyfills)130个字节[初始] [呈现] 块{3} styles.94b23734c15b9fde9994.css(样式)128 kB [初始] [呈现] src \ app \ app.component.html(25,29)中的错误:类型'object'上不存在属性'savedSearches'。 src \ app \ app.component.html(75,73)::类型'object'上不存在属性'savedSearches'。 src \ app \ app.component.html(115,66)::类型'object'上不存在属性'predefinedSearches'。 src \ app \ app.component.html(126,66)::类型'object'不存在属性'categories'。 src \ app \ app.component.html(155,66)::类型'object'不存在属性'activities'。 src \ app \ app.component.html(165,66)::类型'object'不存在属性'facilities'。
答案 0 :(得分:0)
您会收到此错误,因为您的变量类型只是“对象”,而没有“ savedSearches”属性。您需要创建一个具有这些属性的类,或者使用方括号表示法。
*ngFor="let sav of search['savedSearches']"
个人而言,我更喜欢创建一个类,因为这样可以更清楚地了解变量实际具有的字段。毕竟,您正在使用TypeScript。
class SearchResult {
savedSearches: SavedSearch[];
}
class SavedSearch {
savedSearchName: string;
}
AppComponent implements OnInit {
search: SearchResult;
constructor(private activityService : ActivityService) {}
ngOnInit(){ this.getSearches(); this.getResults(); }
getSearches(){
this.activityService.getSearchAPI()
.subscribe(
data => this.search = data,
error => console.log('Server Error') );
}
}
}
对于一个类,您的模板可以保持不变:
<div class="col-4">
<div class="dropdown">
<label for="savedSearch" style="margin-left: 5%;">Saved Search</label>
<select class="btn btn-secondary dropdown-toggle" style="margin-left: 20%;" id="savedSearch">
<option>Choose a Saved Search</option>
<option value="savedSearchName" *ngFor="let sav of search?.savedSearches">{{sav.savedSearchName}}</option>
</select>
</div>
</div>