そのため、リーフレット ライブラリを使用してインスタンス化されたマップ オブジェクトがあります。マップ インスタンスは別のテンプレートで作成され、次の方法でルーティングされます。
var app = angular.module('myApp', ['ui', 'ngResource']);
app.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/map.html',
controller: 'MapCtrl'
})
.otherwise({
redirectTo: '/'
});
});
問題は、「検索/フィルタリング」を処理し、マップ インスタンスにロードするオブジェクトを検索するときに GET パラメータを制御したいときに始まります。
これは私が実装した単純なフィルター関数で、ユーザーがクリックした選択した値 (ドロップダウン リスト) に基づいてトリガーされます。
$scope.setFilter = function (fname, fvalue) {
console.log("Setting " + fname + " to " + fvalue);
var search_string = $location.search();
search_string[fname] = fvalue;
$location.search(search_string);
};
ブラウザのアドレス バーの URL は期待どおりに更新されますが、元の (リーフレット) マップ オブジェクトは「更新」されてビューから消えます。これは私が望むものではありません。
これが起こらないようにする方法、またはこのプロセスを制御してマップを表示できるようにするにはどうすればよいですか?