2016-03-15 2 views
1

У меня возникли проблемы, делая карту-контроллер с двухполосными данными угловыми в выражении привязки:Углового Google Maps - Двухстороннее связывание данных в карте-контроле

<script type="text/ng-template" id="control.tpl.html"> 
    <button class="btn btn-sm btn-primary" ng-class="{'btn-warning': danger}" ng-click="controlClick()"><h1>{{controlText}}</h1></button> 
</script> 

<ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options"> 
    <ui-gmap-map-control template="control.tpl.html" position="center" controller="controlCtrl" index="-1"></ui-gmap-map-control> 
</ui-gmap-google-map> 

<div ng-controller="controlCtrl"> 
    <h1>{{controlText}}</h1> 
    <label>Two-way Data Binding:</label> 
    <input ng-model="controlText"> 
</div> 

Вот это Plunker с моей проблемой.

Есть ли способ изменить связанный атрибут в режиме управления картой?

Спасибо за помощь :)

ответ

0

Для того, чтобы изменить связанный атрибут в карте-контроль:

1) ввести отдельный контроллер для шаблона, чтобы разделить его объем с другим контроллером:

<script type="text/ng-template" id="control.tpl.html"> 
    <div ng-controller="templateCtrl"> 
     <button class="btn btn-sm btn-primary" ng-class="{'btn-warning': danger}" ng-click="controlClick()"><h1>{{controlText}}</h1></button> 
    </div> 
</script> 

2) Вещательные изменения:

$scope.$watch('controlText', function() { 
     $rootScope.$broadcast('controlText:changed', $scope.controlText); 
}); 

3) Получение изменений в контроллере шаблона:

.controller('templateCtrl', function ($scope) { 
    $scope.$on('controlText:changed', function(event, val) { 
     $scope.controlText = val; 
    }); 
})  

Plunker

+0

Спасибо за ответ! Но почему нам нужно создать отдельный контроллер? Это похоже на контроль карты, создающий новый экземпляр контроллера, который мы передаем ему. –

+0

Причина создания контроллера внутри шаблона заключается в том, чтобы совместно использовать одну и ту же область между контроллером (ами) и шаблоном –

Смежные вопросы