Итак, я пытаюсь использовать углы и иметь некоторые проблемы, пытаясь вызвать директиву (google maps https://github.com/davidepedone/angular-google-places-map) и выполнять обратное геокодирование. Я думаю, что это были бы более общие вопросы директив.Методы вызова из директивы
Я пытаюсь вызвать функцию в директиве, чтобы обновить информацию о местоположении карты Google, а также карту. То, как я размышляю в своей голове, заключается в том, что мне нужно передать переменную через контроллер, обладать этой переменной директивой, а затем директива будет запускать эту функцию?
ОБНОВЛЕНО:
<div class="row">
<places-map selectedid="selectid(place.id)"></places-map>
</div>
<button ng-click="selectid(place.id)">{{place.id}}</button> </div>
С этой мыши я полагаю, чтобы перейти к контроллеру,
$scope.selectid= function (pickplaceid){
$scope.selectedid(pickplaceid);
}
Тогда selectplaceid должно быть в области видимости переменных директивы.
scope: {
customCallback: '&?',
picked: '=?',
address: '=?',
fallback: '=?',
mapType: '@?',
readonly: '@?',
responsive: '@?',
draggable: '@?',
toggleMapDraggable: '=?',
placeNotFound: '=?',
updateMarkerLabel: '=?',
selectedid:'='
},
и может назвать свой метод, как так:
link: function ($scope, element, attrs, controller) {
//everything else from angular-google-places
$scope.selectedid= function (selectedplace)
{
///Whatever I want to do to geocode with the placeid
}
Я думаю, что не может просто делать это совершенно неправильно, имеющий действительно не повезло с вызовом директивы вообще. Я пытаюсь обновить свою карту на основе местоположения, которое я нажимаю, и вытаскивать информацию из этого конкретного места с места. Любая помощь будет большой.
Вы создаете изолированную область в вашей директиве, так он не имеет понятия о переменных в контроллере. Вам нужно передать переменные, которые вам нужны в html: –
cYrixmorten
Разве это не означает, что ваша область действия selectplaceid = place.id? Как он будет вызывать функцию selectplaceid? –
Собственно, после повторного чтения вашего вопроса я мог бы подумать, что вы можете изменить '$ scope.selectplaceid = pickplaceid;' в '$ scope.selectplaceid (pickplaceid);' в вашем контроллере вызвать метод внутри вашей директивы. Однако вам все равно нужно передать функцию в вашу директиву в HTML, поскольку вы создали изолированную область. Взгляните на пример передачи customerInfo в документации: https://docs.angularjs.org/guide/directive – cYrixmorten