我正在尝试从第三方指令的标记内调用我的控制器中定义的函数。奇怪的是,我可以正常访问常规变量,但功能似乎根本没有出现。
我的控制器的一部分:
$scope.map = {
control: {},
center: {
latitude: 45,
longitude: -73
},
zoom: 8,
currentMarker:{id:-1, coords: {latitude: 45, longitude: -73}},
wndoptions:{
boxClass: 'bubble'
}
};
[...]
$scope.moveMarkerUp = function(){
alert('Do things here');
};
标记:
<div ng-app="App" ng-controller="MapCtrl">
<input type="button" value="U" ng-click="moveMarkerUp()" ng-show="showWnd"></input>
<google-map center="map.center" zoom="map.zoom" ng-show="true" draggable="true" control="map.control">
<window coords="map.currentMarker.coords" show="showWnd" options="map.wndoptions">
<div >
Marker {{showWnd}}
<input type="button" value="Up" ng-click="moveMarkerUp()" ng-show="{{showWnd}}"></input>
</div>
</window>
<markers models="markers" coords="'coords'" click="'clk'"></markers>
</google-map>
</div>
因此,当按下第一个按钮时,函数会按预期触发,但是第二个按钮在窗口标记内没有任何反应,但是当我在这里评估map
或showWnd
等变量时,确实显示正确的值。我甚至尝试在地图对象中设置一个函数,但是当它以这种方式打印时,函数变量甚至没有在对象中列出。
答案 0 :(得分:1)
window
指令创建子作用域,并且您的函数存在于父作用域中。尝试像ng-click="$parent.moveMarkerUp()"
这样的引用。