0

私はしようとして$watch myMapいますが、それは決して発火しません。使用したものに絞り込みましたui-if(ui-ifを削除する$scope.myMapと、適切なgoogleマップオブジェクトになります)。ui-mapただし、AJAX / Dbクエリが終了するのを待つために、ui-ifを保持する必要があります。

myMapがスコープに追加されないのはなぜですか(どのように取得しますか)?

プランカー

編集このGitHubの問題から、ui-ifが独自のスコープを作成していることがわかります。では、どうすればそのスコープにアクセスできますか/現在どこmyMapに住んでいますか?また、なぜui-ifが新しいスコープを作成するのですか?

4

2 に答える 2

2

親スコープを含め、オブジェクトを保存する場所を指定できます。

ui-map="$parent.myMap"

これはやや信頼性が低いと考えられていますが (任意の数のディレクティブが追加のスコープ レイヤーを作成する可能性があるため)、オブジェクトのプロパティに設定することを検討することをお勧めします。

于 2013-01-31T01:17:28.010 に答える
2

GoogleMapsコントローラーでモデルを作成します。

$scope.model = {};

ui-mapディレクティブへの参照としてモデルを渡します。

ui-map="model.myMap"

変更に注意してください:

$scope.$watch('model.myMap', function(map){
    ...
}

このようにして、スコープmyMap内でのプロパティの作成を回避します。ui-if

また、スコープのプロトタイプ継承の詳細については、このドキュメントを確認してください。

于 2013-01-31T01:50:39.033 に答える