問題タブ [this-pointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Angular 6コンポーネントインスタンスを指す「この」コンテキストを提供する方法は?
D3 と JS に基づいて、地球儀で動作するデモがあります。今、そこから Angular 6 コンポーネントを作成しようとしています。
Angular を使用しない完全なデモは次のとおりです。
簡単な Angular コンポーネントのデモを次に示します。
https://stackblitz.com/edit/angular-dohwvt
マウスを動かすと、アプリは「これ」を console.log に記録します。どちらのデモでも、キャンバスを指している 'this' がありますが、これは正しいです。
しかし、Angular の例では、アプリにエラーがあります:
this.getCountry は関数ではありません
「getCountry」はキャンバスではなくコンポーネント メソッドであるためです。
そのため、キャンバスとコンポーネントの両方のコンテキストを取得する方法を見つけようとしています。
どうやってするの?
https://stackblitz.com/edit/angular-rlttwv?file=src/app/earth-globe.component.ts - コンポーネントを指す
https://stackblitz.com/edit/angular-xjahkl?file=src/app/earth-globe.component.ts - キャンバスを指す
c++ - 読み取りアクセス違反。これは 0xCDCDCDCD でした
私は何が間違っているのか混乱していますか?デバッグ中にthis
表示0xcdcdcdcd {theDouble=??? }
されるので、変数がミューテーターに格納されていないことがわかります。この問題を修正するにはどうすればよいですか? this
どこかで初期化する必要がありますか?ちなみに私はビジュアルスタジオを使用しています。お手伝いありがとう。