2016-11-30 6 views
0

У меня есть класс в машинописи, как это -комплексов имени поля класса в машинописи

export class News { 
    title: string; 
    snapshot: string; 
    headerImage: string; 
} 

Теперь в моей угловой службе у меня есть метод, который получить список новостей, как это -

private searchNews(sortOrder : string, query? : string):Observable<News[]>{ 
     return this.http.get(this.url+'?'+this.buildParams(sortOrder,10,0,query)) 
         .map((res:Response) => res.json()) 
         .catch((error:any) => Observable.throw(error.json().error || 'Server error')) 
    } 

вот JSON данные я получаю от сервера -

[{ 
    "jcr:path":"someurl", 
    "title":"Hello News", 
    "snapshot":"Here is a snapshot", 
    "headerImage":"image.png" 
}, 
... 
] 

Теперь я хочу, чтобы добавить поле «погладить h " в моем классе новостей, который отображает значение поля " jcr: path " данных json.

Но я не могу написать класс, как это -

export class News { 
    jcr:path:string;// I may write it as - path:string 
    title: string; 
    snapshot: string; 
    headerImage: string; 
} 

Так есть способ я могу сказать, машинописи, чтобы извлечь значение «пути» поля от «JCR: пути» свойства

ответ

2

вы можете определить имя свойства в виде строки:

class News { 
    'jcr:path': string; 
    // ... 
} 
+0

это замечательно, но вы можете сказать мне, пожалуйста, если есть способ, я ча n сохраняйте только мой путь к имени поля, так что это будет легко записать в угловом выражении, например {{news.path}} {{news ['jcr: path']}} –

+0

Это требует, чтобы вы изменили форму базового объект javascript. Вы можете сделать это, используя преобразование в своем HTTP-запросе (см. Https://docs.angularjs.org/api/ng/service/$http#transforming-requests-and-responses) – Mike

+0

Да, это то, что я искал. Благодарю. –

Смежные вопросы