いくつかのマーカーが付いた地図があります。クリックすると、各マーカーがオーバーレイ div を開きます。
<div class="map" ng-init="loadall()">
<a ng-click="details.show=!details.show" href="#/dealer/{{marker.id}}" class="marker" style="left:{{marker.coordleft}}px;top:{{marker.coordtop}}px" ng-repeat="marker in dealer"></a>
</div>
このdivを開いています:
<div ng-show="details.show">
<div ng-view></div>
</div>
問題:
div が既に開いている場合 (details.show == true)、顧客は、div を開いたままにしてマップ上の別のマーカーをクリックすると、div が再び閉じることに気付きました。
私が達成したいこと:
div が既に開いている場合は、div を閉じて再度開くことなく、新しいコンテンツを ng-view にロードするだけです。
これは可能ですか?
編集:
私のルート:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/dealer/:id', {templateUrl: 'files/tpl/dealer-details.html?20', controller: 'DealerDetailsCtrl', activetab: 'details'}).
when('/dealermessage/:id', {templateUrl: 'files/tpl/dealer-message.html?124', controller: 'DealerMessageCtrl', activetab: 'message'}).
when('/dealersendmessage/:id', {templateUrl: 'files/tpl/dealer-details.html?8', controller: 'DealerDetailsCtrl', activetab: 'details'}).
otherwise({redirectTo: '/dealer'});
}]);
マーカーがクリックされた場合、最初のルートとコントローラーが読み込まれます。これは役に立ちますか?
編集番号2:
「マーカー/divトグルは現在機能していますが、開いたオーバーレイの奇妙な動作が発生しました。
例:
"Marker 1" を開くと、div が正常に開きます。「マーカー 1」の div が開いているときに、「マーカー 2」をクリックすると、「マーカー 2」のコンテンツで div が更新されます。しかし、「マーカー1」をクリックすると、divが突然閉じます。
どうすればそれを止めることができますか?