Я использую ui.router
для переключения между состояниями. В одном из этих состояний есть боковая панель с моделью filter
:
$scope.filter = {
searchType: 'RENT',
propertyType: 'APARTMENT',
min: 0,
max: 200000
};
Поэтому мой URL-адрес выглядит так: #/search?searchType=RENT&propertyType=APARTMENT&min=0&max=200000
.
Как "синхронизировать" URL-адрес и модель?
Поэтому, когда кто-то изменится, допустим, что значение min
в URL-адресе, изменение будет отражено в моей модели (и, конечно, в представлении). И если кто-то изменит какое-то значение в представлении, URL-адрес также изменится.
Он попытался использовать $scope.$watchCollection
на filter
и поймать $locationChangeSuccess
событие с $scope.$on
Но он не работал так, как я ожидал.
$scope.$on('$stateChangeSuccess', function () {
// Grab values using $location.search()
});
Если это событие не делает то, что вы хотите, возможно, вы хотите $ routeChangeSuccess.