Я пишу приложение с ионизирующим устройством, и у меня возникают проблемы с настраиваемым элементом директивы.Угловая директива не отображается после возвращения на страницу
Вот упрощенная codepen моей проблемы http://codepen.io/anon/pen/zGJRQg
angular.module('ionicApp',[
'ionic'
])
.directive('map', function() {
return {
restrict: 'A',
replace: true,
link: function(scope, element, attributes) {
function drawMap(position) {
var myLatlng = new google.maps.LatLng(position.latitude, position.longitude);
var mapOptions = {
center: myLatlng,
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
scope.marker = new google.maps.Marker({
position: myLatlng,
map: map
});
scope.map = map;
}
function updateMap(position) {
var newPosition = new google.maps.LatLng(position.latitude, position.longitude);
scope.marker.setPosition(newPosition);
scope.map.panTo(newPosition);
}
var position = {
coords: {
latitude: 50.2440218,
longitude: 5.2807709
}
};
scope.currentPosition = position.coords;
if (!scope.map) {
drawMap(position.coords);
} else {
updateMap(position.coords);
}
scope.$on('$destroy', function() {
watch.clearWatch();
});
},
template: '<div style="width: 100%; height: 280px;" id="map" data-tap-disabled="true"></div>'
}
});
Если нажать на кнопку «поиск для кода работы», это приведет вас к странице поиска. Когда вы находитесь на этой странице, если вы нажмете кнопку «Назад» в верхнем левом углу, карта на первой странице все еще отображается ОК. Однако, если вы нажмете кнопку «выбрать код задания», вы будете перенаправлены обратно на исходную страницу, но карта не будет видна.
Может кто-нибудь сказать мне, что случилось, и как это исправить?
Спасибо за любую помощь
Edit: Я заметил, что если я не включают Params, например:
$scope.selectJobCode = function(jobCode) {
$state.go('app.jobs');
};
то директива остается неповрежденным и работать. Однако, как только я посылаю Params вместе с изменением состояния, директива больше не работает:
$scope.selectJobCode = function(jobCode) {
$state.go('app.jobs', {
jobCode: jobCode
});
};
Изменение названия не имеет никакого значения. –
hmm извините. Я думал только об этом сейчас :( – CoderWho