Ng-click无法正常工作

时间:2016-05-10 17:43:39

标签: javascript angularjs scope controller angularjs-ng-click

我有这个控制器。 这是我正在处理的应用程序的地图视图。 由于某种原因,我在页脚上的按钮不起作用。关于该函数的操作永远不会被调用...

.controller('mapaCtrl', function($scope, $compile, $location) {

    $scope.goPayment = function() {
        $location.path('side-menu/history');
    };


var myLatlng = new google.maps.LatLng(34.603711, -58.381585);

    var mapOptions = {
        center: myLatlng,
        zoom: 16,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map"), mapOptions);

    navigator.geolocation.getCurrentPosition(function(pos) {
        map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude));
        var myLocation = new google.maps.Marker({
            position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude),
            map: map,
            title: "My Location"
        });

        google.maps.event.addListener(myLocation, 'click', function() {
            infowindow.open(map,myLocation);
        });
    });


    var contentString = "<div><a ng-click='clickTest()'>Pagar Aqui!</a></div>";
    var compiled = $compile(contentString)($scope);

    var infowindow = new google.maps.InfoWindow({
      content: compiled[0]
    });

  $scope.map = map;

      $scope.clickTest = function() {
    $location.path('side-menu/pay');
  };




})

我在html

上有这个电话
<ion-view title="Mapa" id="page13">
<ion-content ng-controller="mapaCtrl">
  <div id="map" data-tap-disabled="true"></div>
</ion-content>
<ion-footer-bar align-title="left" class="bar-balanced">
    <button class="button" ng-click="goPayment()">Ver mis pagos</button>

在按钮上单击没有调用“$ location.path('side-menu / history');”

你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

您的按钮超出了控制器的范围。 检查你的代码。

<ion-view title="Mapa" id="page13">
<ion-content ng-controller="mapaCtrl">
  <div id="map" data-tap-disabled="true"></div>
</ion-content> <!--controller ends here-->

<ion-footer-bar align-title="left" class="bar-balanced">
    <button class="button" ng-click="goPayment()">Ver mis pagos</button>

按钮位于控制器外部,因此无法调用任何功能。

答案 1 :(得分:0)

您已将控制器设置在“ion-content”标签上。您的按钮元素位于此标记之外。只需将结束标记移动到按钮下方即可。

<ion-view title="Mapa" id="page13">
<ion-content ng-controller="mapaCtrl">
  <div id="map" data-tap-disabled="true"></div>
<ion-footer-bar align-title="left" class="bar-balanced">
    <button class="button" ng-click="goPayment()">Ver mis pagos</button>
</ion-content>

或者在更高级别的元素上定义控制器。

<div ng-controller="mapaCtrl"> 
  <ion-view title="Mapa" id="page13">
    <ion-content>
      <div id="map" data-tap-disabled="true"></div>
    </ion-content>
    <ion-footer-bar align-title="left" class="bar-balanced">
        <button class="button" ng-click="goPayment()">Ver mis pagos</button>
</div>