2017-02-02 7 views
0

Я пытаюсь вызвать эту функцию domain из моего шаблона, но получаю self.context.article.domain is not a function ошибка. Попытался посмотреть на другие ответы на SO, но не смог решить проблему.self.context не является функцией

Вот мой component-

import { Component,Input } from '@angular/core'; 
import {Article} from './Article' 

@Component({ 
    selector:'article-art', 

    template:`<div class="container"> 
    <div class="row"> 
     <section class="col-sm-4 col-md-4 col-xs-4 left"> 
     <div class="value">{{article.votes}}</div> 
     <div class="label">Points</div> 
     </section> 
     <section class="col-sm-8 col-md-8 col-xs-8 right"> 
     <a class="ui large header" href="{{ article.link }}"> 
      {{ article.title }} 
     </a> 
     <div class="meta">({{ article.domain() }})</div> 
     <ul> 
      <li><a href (click)="voteUp()"><i class="glyphicon glyphicon-arrow-up"></i>Upvote</a></li> 
      <li><a href (click)="voteDown()"><i class="glyphicon glyphicon-arrow-down"></i>DownVote</a></li> 
     </ul> 
     </section> 
    </div> 
    </div>`, 
    styleUrls:['src/article.cmponent.css'] 
}) 

export class ArticleComponent{ 
    @Input() article:Article; 

    voteUp(){ 
    this.article.voteUp(); 
    return false; 
    } 

    voteDown(){ 
    this.article.voteDown(); 
    return false; 
    } 
    domain(): string { 
try { 
const link: string = this.link.split('//')[1]; 
console.log(link); 
return link.split('/')[0]; 
} catch (err) { 
return null; 
} 
} 
} 

также прикрепление воспроизведенной проблемы в plunker: https://plnkr.co/edit/tu7YImvsMjpWyrmjq2M2?p=preview. Вы можете увидеть ошибки в консоли.

Спасибо за любую помощь, которая приходит мне на ум.

+0

Вы отлаживали, чтобы узнать, что именно означает 'self.context.article.domain'? – Carcigenicate

+0

@ cy3er Я не понял вашу точку зрения. Если вы видите ссылку, которую я подключил, вы увидите, что массив статей инициализирован в 'app.ts' –

+0

@Carcigenicate. Я только что увидел, что у меня что-то не хватает в моей кодовой ссылке, которую я поделил. Обновлено сейчас. –

ответ

2

Вы получаете self.context.article.domain is not a function, потому что нет функции под названием domain на классе Article. Добавьте функцию domain в класс Article и он должен работать должным образом.