我有一个使用这些导入定义的服务:
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { Observable } from "rxjs/Observable";
import "rxjs/add/operator/map";
import { Subject } from "rxjs/Subject";
import { Navigation } from "../Shared/app.home";
import { Module } from "../Shared/app.home";
然后在服务中我定义了一个方法:
getNavigationModules(): Observable<Navigation[]> {
return this.http.get<Module[]>("/api/modules/getuserpreferences").map((mods) => {
return mods.map(m => {
var nav = new Navigation();
nav.id = m.Id;
nav.name = m.Name;
nav.isFavorite = m.IsFavorite;
nav.url = m.FriendlyUrl;
nav.status = (m.ModuleProperties["Status"] != null && m.ModuleProperties["Status"] === "Online") ? "on" : "off" ;
nav.type = m.Type;
return nav;
});
});
}
调用该方法时,我得到的错误是map未定义。
调用mods时。映射我假设通过调用http。获取mods将是一个模块数组,但当我使用调试器(Chrome)时,我看到调试器将mods视为一个具有属性Modules的对象,这就是模块数组。
但是如果我把代码改成mods。模块。map我在编译时出错,因为mods实际上是一个模块[],而不是一个对象。
我错过了什么?
谢谢