角度のあるcomponent2のcomponent1onclickイベントにサービスから更新されたデータを取得していません

タイラー

ニュースアプリケーションを作成するためにAngular9に取り組んでいます。TimesofIndiaRSSFeedAPIを使用していますhttps://timesofindia.indiatimes.com

これが私のstackblitzリンクですhttps://stackblitz.com/github/mehulk05/Newsapp

ホームコンポーネントにカテゴリがあるので、カテゴリをクリックすると、サービスでそのカテゴリのニュースを取得してNewsListコンポーネントに表示しようとしていますが、カテゴリを変更すると、最新のデータを送信できません。サービスからnewsListコンポーネントへ。NewsServiceのコンソールで更新されたデータを取得していますが、newsListComponentでそのデータをフェッチできません。

これが私のコードです

Home.component.html

<div class="container mt-5">
    <div class="col-xs-12">


        <div class="row mt-4">
            <div class="col-xs-3 col-md-3 sidelink">
                <div class="list-group">
                    <a *ngFor="let c of categories" 
                    class="list-group-item list-group-item-action"
                     id="list-home-list" [routerLink]="" 
                     role="tab" aria-controls="home" 
(                    (click)='onClick(c.url)'>{{c.type}}</a>
                </div>
            </div>
            <div class="col-md-9 col-xs-9">
                <router-outlet></router-outlet>
            </div>
        </div>
    </div>
</div>

Home.component.ts

export class HomeComponent implements OnInit {

  categories=[
    {type:"home",url:"https://timesofindia.indiatimes.com/rssfeedstopstories.cms?feedtype=sjson"},
  {type:"recent",url:"https://timesofindia.indiatimes.com/rssfeeds/1221656.cms?feedtype=sjson"},
  {type:"india",url:"https://timesofindia.indiatimes.com/rssfeeds/-2128936835.cms?feedtype=sjson"},
  {type:"cricket",url:"https://timesofindia.indiatimes.com/rssfeeds/4719161.cms?feedtype=sjson"}]


    constructor(private ns:NewsserviceService,
      private router:Router) { }

    ngOnInit(): void {
    }

    onClick(title){
     console.log(title)
      this.ns.getUrl(title)
      this.router.navigate(["/news-list"])
    }

  }

NewsService.ts

export class NewsserviceService {
  url:string='https://timesofindia.indiatimes.com/rssfeedstopstories.cms?feedtype=sjson'
  constructor(private http:HttpClient) { 

  }

  getUrl(url){
    this.url=url
    this.getNewsList();
  }

  getNewsList(){
    this.url='https://cors-anywhere.herokuapp.com/'+this.url
  console.log(this.url)
     this.http.get(this.url ).subscribe(data=>{
      console.log(data)
    })
  }
}

NewsList.component.ts

news:any
    constructor(private ns:NewsserviceService,private cd:ChangeDetectorRef) { }

      ngOnInit() {
      this.news= this.ns.getNewsList();
      console.log("news is"  +this.news)
    }
}

カテゴリをクリックすると、Newslistコンポーネントからコンソールで初めてデータを取得しますが、その後、newsListコンポーネントからデータを取得しませんが、Newserviceからコンソールでデータを取得します。

MK

ここであなたがやろうとしていることがわかります

  1. コンポーネント1のイベントをクリックし、URLをサービスに送信します
  2. 稼働中のthaturlのデータを取得する
  3. そのデータをコンポーネント2に送信します

これでできることは、サービスでイベントエミッターを作成し、そのイベントをサービスデータとともにコンポーネント1からコンポーネント2に発行できることです。これを行う方法は次のとおりです。

Service.ts

 SelectedUrlData=new EventEmitter();

 getUrl(url){
    this.url=url
    this.getNewsList();

  }

  getNewsList() {
    this.url = 'https://cors-anywhere.herokuapp.com/' + this.url

    this.http.get<any[]>(this.url).subscribe(data => {
      this.tohome = data

    })

  }

  getData(): Observable<any> {
    this.url='https://cors-anywhere.herokuapp.com/'+this.url
  return this.http.get<any[]>(this.url);
}

Home.ts

@Input() newdata:any


    ngOnInit(): void {
      this.ns.getData().subscribe(data=>
        {
          console.log(data)

        })

    }

    onClick(title){

      this.ns.getUrl(title) 
      this.tohome=this.ns.tohome
      this.ns.selectedurl.emit(this.tohome)
      this.router.navigate(["/news-list"])
    }

newslist.ts

news:any
 ngOnInit() {
        this.ns.getData().subscribe(data=>
          {
            console.log(data)
          })
        this.news = this.ns.getNewsList();
        this.ns.selectedurl.subscribe(data => {
          console.log(data)
      })

    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Webサーバーからデータが変更されるたびに、(ベースアダプターを使用して)リストビューを2つのアイテムで更新するにはどうすればよいですか?

分類Dev

サーバーから角度テーブルに動的データを取得しようとしましたが、最初の行しか表示されていません

分類Dev

GPSがインストールされているにもかかわらず、エミュレータのCordovaアプリケーションが「GooglePlayサービスを更新しないとHelloMapは実行されません」とスローします

分類Dev

Androidのサービスから取得したため、データがバインドされません

分類Dev

1つのビューにCreateビューコードとインデックスビューコードを混在させました。では、asp.net MVC4のそのビューでデータベースからデータを取得するにはどうすればよいですか?

分類Dev

magento2のブラウザーからコントローラーが更新されたときに、顧客モデルからのコレクションが更新されたデータを取得していません

分類Dev

データベースは、あるアクティビティから別のアクティビティにデータを更新していません

分類Dev

onClick リスナーは関数であると想定されていましたが、代わりにタイプ string 不明なイベント ハンドラー プロパティ onclick を取得しました。「onClick」のことですか?

分類Dev

Onclickイベントはテーブル値を1回更新しますが、2回目のonclickイベント更新時に更新された値を表示することはありません

分類Dev

角度 2 サービスのデータを操作しても、2 番目のコンポーネントのデータは変更されません。

分類Dev

Angular2:子コンポーネントのページを更新した後、サービスからデータを取得できません

分類Dev

角度のあるナビゲーションバーのデータが更新されていません

分類Dev

角度のあるナビゲーションバーのデータが更新されていません

分類Dev

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を取得しました。サーバーにデプロイするとエラーが発生しますが、ローカルで実行/デバッグしても問題ありません

分類Dev

mysqlから取得した日付データは、c#のラベルに表示されている正確なデータではありません

分類Dev

文字列はFirestoreからデータを取得した後のOnClickリスナーでArrayListに追加取得されていません

分類Dev

あるコントローラーから別のコントローラーで使用するためにサービスに設定された値は、angular jsを使用したページの更新時に値を返しません(angularの新機能)

分類Dev

データがDB /モデルにあるにもかかわらず、FastAPIがネストされたスキーマを取得していません

分類Dev

データがDB /モデルにあるにもかかわらず、FastAPIがネストされたスキーマを取得していません

分類Dev

ストリーム#1でコーデックpcm_alawのタグが見つかりませんでした。ffmpegを使用して2つのファイルを連結するときに、コーデックは現在コンテナでサポートされていません。

分類Dev

ライブデータオブザーバーは一度だけ呼び出しました。UIを更新するためにAPIが再度呼び出されたときにサーバーからのデータを更新していません

分類Dev

GooglePlayデベロッパーコンソールのサポートされているデバイスにタブレットがありません

分類Dev

ビュー「インデックス」またはそのマスターが見つからなかったか、検索された場所をサポートするビューエンジンがありません。IIS8.5にMVC5 / MVC4を展開した後

分類Dev

リサイクラービューを使用してFirebaseからデータを取得中にエラーが発生しました:E / RecyclerView:アダプターが接続されていません。レイアウトをスキップ

分類Dev

Ruby on Rails:APIからJSONデータを取得してPostgresデータベースに保存しようとしています-rakeが中止されました!TypeError:文字列から整数への暗黙的な変換はありません

分類Dev

Ruby on Rails:APIからJSONデータを取得してPostgresデータベースに保存しようとしています-rakeが中止されました!TypeError:文字列から整数への暗黙的な変換はありません

分類Dev

データベースへの接続エラー:エラー:ER_NOT_SUPPORTED_AUTH_MODE:クライアントはサーバーから要求された認証プロトコルをサポートしていません

分類Dev

wso2のMySQLでレジストリデータベースを変更しようとしていますが5.9.0であり、手順に従いましたが、コンソールに反映されていませんか?

分類Dev

サーバーから以下のデータを取得し、名前に表示されている重複データを取得しました。重複したデータは必要ありません。これを解決するのを手伝ってもらえますか

Related 関連記事

  1. 1

    Webサーバーからデータが変更されるたびに、(ベースアダプターを使用して)リストビューを2つのアイテムで更新するにはどうすればよいですか?

  2. 2

    サーバーから角度テーブルに動的データを取得しようとしましたが、最初の行しか表示されていません

  3. 3

    GPSがインストールされているにもかかわらず、エミュレータのCordovaアプリケーションが「GooglePlayサービスを更新しないとHelloMapは実行されません」とスローします

  4. 4

    Androidのサービスから取得したため、データがバインドされません

  5. 5

    1つのビューにCreateビューコードとインデックスビューコードを混在させました。では、asp.net MVC4のそのビューでデータベースからデータを取得するにはどうすればよいですか?

  6. 6

    magento2のブラウザーからコントローラーが更新されたときに、顧客モデルからのコレクションが更新されたデータを取得していません

  7. 7

    データベースは、あるアクティビティから別のアクティビティにデータを更新していません

  8. 8

    onClick リスナーは関数であると想定されていましたが、代わりにタイプ string 不明なイベント ハンドラー プロパティ onclick を取得しました。「onClick」のことですか?

  9. 9

    Onclickイベントはテーブル値を1回更新しますが、2回目のonclickイベント更新時に更新された値を表示することはありません

  10. 10

    角度 2 サービスのデータを操作しても、2 番目のコンポーネントのデータは変更されません。

  11. 11

    Angular2:子コンポーネントのページを更新した後、サービスからデータを取得できません

  12. 12

    角度のあるナビゲーションバーのデータが更新されていません

  13. 13

    角度のあるナビゲーションバーのデータが更新されていません

  14. 14

    「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を取得しました。サーバーにデプロイするとエラーが発生しますが、ローカルで実行/デバッグしても問題ありません

  15. 15

    mysqlから取得した日付データは、c#のラベルに表示されている正確なデータではありません

  16. 16

    文字列はFirestoreからデータを取得した後のOnClickリスナーでArrayListに追加取得されていません

  17. 17

    あるコントローラーから別のコントローラーで使用するためにサービスに設定された値は、angular jsを使用したページの更新時に値を返しません(angularの新機能)

  18. 18

    データがDB /モデルにあるにもかかわらず、FastAPIがネストされたスキーマを取得していません

  19. 19

    データがDB /モデルにあるにもかかわらず、FastAPIがネストされたスキーマを取得していません

  20. 20

    ストリーム#1でコーデックpcm_alawのタグが見つかりませんでした。ffmpegを使用して2つのファイルを連結するときに、コーデックは現在コンテナでサポートされていません。

  21. 21

    ライブデータオブザーバーは一度だけ呼び出しました。UIを更新するためにAPIが再度呼び出されたときにサーバーからのデータを更新していません

  22. 22

    GooglePlayデベロッパーコンソールのサポートされているデバイスにタブレットがありません

  23. 23

    ビュー「インデックス」またはそのマスターが見つからなかったか、検索された場所をサポートするビューエンジンがありません。IIS8.5にMVC5 / MVC4を展開した後

  24. 24

    リサイクラービューを使用してFirebaseからデータを取得中にエラーが発生しました:E / RecyclerView:アダプターが接続されていません。レイアウトをスキップ

  25. 25

    Ruby on Rails:APIからJSONデータを取得してPostgresデータベースに保存しようとしています-rakeが中止されました!TypeError:文字列から整数への暗黙的な変換はありません

  26. 26

    Ruby on Rails:APIからJSONデータを取得してPostgresデータベースに保存しようとしています-rakeが中止されました!TypeError:文字列から整数への暗黙的な変換はありません

  27. 27

    データベースへの接続エラー:エラー:ER_NOT_SUPPORTED_AUTH_MODE:クライアントはサーバーから要求された認証プロトコルをサポートしていません

  28. 28

    wso2のMySQLでレジストリデータベースを変更しようとしていますが5.9.0であり、手順に従いましたが、コンソールに反映されていませんか?

  29. 29

    サーバーから以下のデータを取得し、名前に表示されている重複データを取得しました。重複したデータは必要ありません。これを解決するのを手伝ってもらえますか

ホットタグ

アーカイブ