构建项目时出现角度生产错误

时间:2018-12-06 18:55:09

标签: angular

$ 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'。

1 个答案:

答案 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>