gpt4 book ai didi

javascript - Angular Google map - map 控件中的双向数据绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 06:15:28 26 4
gpt4 key购买 nike

我在使用 Angular 的双向数据绑定(bind)表达式制作 map Controller 时遇到问题:

<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与我的问题。

有没有办法改变 map 控件中的绑定(bind)属性?

感谢您的帮助:)

最佳答案

为了更改 map 控件中的绑定(bind)属性:

1) 为模板引入一个单独的 Controller ,以便与另一个 Controller 共享其范围:

<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 中接收更改:

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

Plunker

关于javascript - Angular Google map - map 控件中的双向数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36012345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com