鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

javascriptのthis,親thisを参照したいのだ

うーん。見事に詰んでしまっています。 Backbone.jsのビューの中で、googleMapsのイベントリスナー を登録しているけれど、その中のthisは当然googleMapsのthisになってしまって Backbone.Viewのthisではないわけで。・・ Backbone.Viewのthisを参照したい。というかMapViewの中に持つモデルのインスタンスにアクセスしたい。

var MapView = Backbone.View.extend({

    initialize: function() {
(略)
        google.maps.event.addListener( this.model, 'bounds_changed', function (){

        //地図の表示範囲を取得
        var bounds = this.getBounds();
        var northEastLatLng = bounds.getNorthEast();
        var southWestLatLng = bounds.getSouthWest();
        // この中でBackbone.Viewのthisを参照したいのです
(略)

簡単なようで、難しいなぁ。 parentではだめみたいだし・

下記になんとか、解決策みたいなのが。。やっぱりハマるポイントらしい。 http://i26.jp/html5dev/javascript%E3%81%A8%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8this/

結局グローバルにモデルのインスタンスを格納すればなんとかなるか

どこからでも、参照できるのだから、グローバルでいいかぁ。 妥協ではあるけど、まぁいいかぁ。 Backboneモデルはグローバルに格納して使いまわすっていう方針でいこう。

最後に、宣伝を、ATNDフルカレンダーをよろしく。