2017-03-16 6 views
0

私がやった何か--- URLにデータを設定/取得:(URLではない)paramsを設定されていないため、場合罰金ですこのような角度2

setURL(){ 
    this.router.navigate(['/app/chart', {height: this.chartHeight, width: this.chartWidth}]); 
} 

ngOnInit() { 

    this.route.params.subscribe(
     (params: any) => { 
      this.chartHeight= params['height'] || 0; 
      this.chartWidth= params['width'] || 0; 
     } 
    ); 
} 

- デフォルトの幅と高さは0に設定されています。そして、その卵。しかし、私がこれを変更したり、URLにいくつかの値を設定してEnterキーを押すと、何も変わりません。私はconsole.logそれは値が正しく設定されているが、DOMは影響を受けていないことを意味します。変更は一切ありません。これは奇妙です...

+0

、ここではこの絵でそれを見ることができますああ、私は15個の担当者のポイントが必要:P –

+0

は、私はあなたの本当の問題を理解していることを確認します。 getデータのようなデータを渡したいので、次のページのURLにパラメータが表示されますか?もしそうなら、あなたはこれを見たいかもしれないと思うでしょう。http://stackoverflow.com/a/37157905/2218253 – wuno

+0

@wunoどこにも渡したくありません。私はちょうどユーザーが、チャートの高さなど、URLだけでチャート設定を設定できるようにしたい。したがって、ユーザーがURL全体を入力すると、チャートはURLからの設定で読み込まれます。 :)) –

答えて

2

** アップデートスタート **

私は今、あなたはまた、あなたは、人々がURLと場所に直接移動できるようにすることができるようにURLが存在します実現します。また、URLからパラメータを取得する関数を処理する必要があります。

私はthis answerがあなたに役立つと信じていますが、私はまだその問題に直面していません。

** 更新終了 **

あなたはget要求を行っているの機能を再現しようとしているウェブサイト。角度2で

あなたがURLにデータを渡したい場合は、このようにそれを行うだろう、

あなたはこれらの輸入

import { Http, Response, Headers, URLSearchParams }from '@angular/http'; 
import { Observable }from 'rxjs/Observable'; 
import 'rxjs/add/operator/do'; 
import 'rxjs/add/operator/take'; 

はそれがに変化したときにデータを更新するために、観察作成が必要になりますページを更新せずに

private DimensionsData: Observable<any>; 

この関数は、新しいデータセットが渡されるたびに呼び出されます。

private SendData() { 
     let params: URLSearchParams = new URLSearchParams(); 
     params.set('width', this.width); 
     params.set('length', this.length); 
     return this.http.get('UrlPathHere/', 
      { search: params }) 
      .map((res: Response) => res.json()) 
     .take(1) //Takes the first observable and unsubscribes 
     .subscribe(res => this.DimensionsData = res.data_response) 
    } 

あなたは物事が今、あなたはDimensionsDataを取り、ページの設定として、あなたのコードでそれを使用することができますngOnInit()メソッド、

ngOnInit() { 
     this.SendData(); 
} 

に始めるために関数を呼び出します。誰かがページを更新するたびに、GETリクエストが呼び出され、このvariableが更新されます。 DimensionsData

サービスは、URLからデータを取り出し、responseとして渡すだけです。

私は、リクエストリクエストでこれを行う方法を説明しました。これは、サンプルのウェブサイトがあなたに私に示したこととまったく同じだからです。

あなたは@siam

enter image description here

+0

これは複雑に思えます。私の方法は間違っていますか?それともそれが想定どおりに動作しませんか?やってみます。 –

+0

はい、かなり複雑です。あなたはいくつかの問題にぶつかるつもりです。必要なときに、angle2にデータを更新するように指示する必要があります。たとえデータがURLにあったとしても、あなたが私に示した例のようにページがどのように変化すると思いますか?あなたはそれを観察可能にする必要があります。また、人々は、送信されるデータに基づいて計算を要求したり、データを検索したりすることが非常に一般的です。フロントエンドでこれをすべて処理できるのであれば問題ありませんが、基本的にはオブザーバブルを作成し、サービス間でデータを渡します。 – wuno

+0

少し単純化する方法はありますか?私は 'ボタンをクリックするだけでURLを生成したいと言うことができます。ユーザーがクリックすると、関数はこれらのセット変数をURLに送信します。だから私は実際の状態を観察することで何も追加する必要はありません。私は私の質問でそれを示している、それはURLに値を送信しますが、それらを取得することができます。とにかくそんなにありがとう。 –

関連する問題