ng-点击不开火,即使它在同一范围内

ng-Click not firing even tho it's in the same scope

本文关键字:范围内 开火 ng-      更新时间:2023-09-26

我搜索了整个论坛,但我没有找到这个问题的答案。我想设置我的输入字段的值定位地址后按钮单击,但ng-Click="locate()"是不开火。这是我的HTML:

<script id="templates/search.html" type="text/ng-template">
    <ion-view view-title="Datenerfassung">
      <ion-content class="padding" ng-controller="DataCtrl">
        <div class="list">
          <!-- Adressen Input Feld -->
           <label class="item item-input item-floating-label">
             <span class="input-label">Startpunkt in Adressform</span>
             <input id="address" type="text" placeholder="Startpunkt in Adressform">
             <button id="curr_loc" class="button button-balanced" ng-Click="locate()">this-one-doesnt-fire</button>
           </label>
           <!-- Zeit Input Feld -->
           <label class="item item-input item-floating-label">
             <span class="input-label">Zeit in Minuten</span>
             <input id="time" type="number" placeholder="Zeit in Minuten">
           </label>
        </div>
        <!-- Fortbewegungsmittel Toggle Liste -->
        <div class="item item-divider">
          Mit welchem Fortbewegungsmittel </br>
          möchten Sie die Umgebung erkunden?
        </div>
        <ion-radio ng-model="$parent.move" value="walk">Zu Fuß</ion-radio>
        <ion-radio ng-model="$parent.move" value="transit">Tram</ion-radio>
        <ion-radio ng-model="$parent.move" value="car">Auto</ion-radio>
        <ion-radio ng-model="$parent.move" value="bike">Fahrrad</ion-radio>
        <!-- Button zum loslegen -->
        <button id="erkunden" ui-sref="map" class="button button-balanced" ng-Click="setData()">Erkunden</button>
      </ion-content>
      <ion-tabs class="tabs-balanced tabs-icon-top">
    <ion-tab ui-sref="home" title="Home" icon="ion-home"></ion-tab>
    <ion-tab ui-sref="faq" title="FAQ" icon="ion-help-circled"></ion-tab>
    <ion-tab ui-sref="about" title="About" icon="ion-information-circled"></ion-tab>
    <ion-tab ui-sref="impressum" title="Impressum" icon="ion-clipboard"></ion-tab>
  </ion-tabs>
    </ion-view>
 </script>

我的控制器是这样的:

mapApp.controller("DataCtrl", function($scope, dataService) {
  $scope.setData = function() {
    var address = document.getElementById("address").value;
    var time = document.getElementById("time").value;
    var move = $scope.move;
    dataService.setData(address,time,move);
  };
  $scope.locate = function() {
    console.log("asd");
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            var pos = {
                lat: position.coords.latitude,
                lng: position.coords.longitude
            };
            console.log(pos);
            document.getElementById("address").value = pos[0] + "," + pos[1];
        });
    }
  };
});

就像我说的,单击按钮不会触发locate()函数。否则,点击"Erkunden"按钮会触发scope.setData()函数,即使这两个按钮的定义相似。

很确定这是一些愚蠢的错误,我不能看到在我的隧道视野,但我就是不能解决这个问题。

提前感谢您的帮助,致以最诚挚的问候朱利

如果您将按钮置于标签范围之外,您的代码将完美地工作。

<label class="item item-input item-floating-label">
  <span class="input-label">Startpunkt in Adressform</span>
  <input id="address" type="text" placeholder="Startpunkt in Adressform">
</label>
<button id="curr_loc" class="button button-balanced" ng-click="locate()">this-one-doesnt-fire</button>

你的AngularJS指令被拼错为'ng-Click'。正确的拼写是'ng-click'