簡體   English   中英

ng-click在ng-repeat內部不起作用

[英]`ng-click` not working inside `ng-repeat`

我正在嘗試顯示一個觸發相同功能但參數不同的多重按鈕,但其ng-click功能無法正常工作。

這是我的觀點:

<div class="row" ng-repeat="editPhone in studentDetail ">

            <table class="table table-striped m-b-none">
              <tbody>
              <tr>
                  <td>Signup Number</td>
                  <td><input type="text" ng-model="editPhone.phone_no"></td>
                  <td> 
                      <button class="btn btn-sm btn-success btn-addon" ng-click="testJs(editPhone.studentid,'signup',editPhone.phone_no)">
                        <i class="fa fa-save"></i>Save 
                      </button>
                      <i id="signup" class="fa fa-spin fa-spinner hide"></i>
                  </td>
                </tr>
                <tr>
                  <td>Permanent</td>
                  <td><input type="text" ng-model="editPhone.per_tel"></td>
                  <td> 
                      <button class="btn btn-sm btn-success btn-addon" ng-click="saveContactNumbers(editPhone.studentid,'permanent',editPhone.per_tel)">
                          <i class="fa fa-save"></i>Save
                      </button>
                      <i id="permanent" class="fa fa-spin fa-spinner hide"></i>
                  </td>

                </tr>
                <tr>
                  <td>Communication</td>
                  <td><input type="text" ng-model="editPhone.comm_mobileno"></td>
                    <td> 
                      <button class="btn btn-sm  btn-success btn-addon" ng-click="saveContactNumbers(editPhone.studentid,'communication',editPhone.comm_mobileno)">
                         <i class="fa fa-save"></i>Save
                      </button>
                        <i id="communication" class="fa fa-spin fa-spinner hide"></i>
                  </td>

                </tr>
              <tr>
                  <td>Prefered</td>
                  <td><input type="text" ng-model="editPhone.phone_preffered"></td>
                  <td> 

                      <button class="btn btn-sm  btn-success btn-addon" ng-click="saveContactNumbers(editPhone.studentid,'preferred',editPhone.phone_preffered)">
                        <i class="fa fa-save"></i>Save
                      </button>
                        <i id="preferred" class="fa fa-spin fa-spinner hide"></i>
                  </td>

                </tr>

              </tbody>
            </table>


          </div>

我與studentDetail綁定的所有數據均正確顯示。 這意味着Angular運行良好。

為何ng-click無法觸發功能?

這是我的功能:

$scope.saveContactNumbers=function(studentid,typeChange,updatedNumber){
    console.log('saveContactNumbers');
}

是我的完整HTML和JS控制器代碼

修改::在我的整個代碼中,我無法在ng-click上觸發任何控制器的功能。

解決方案::這完全是我的錯。 我錯誤地在其他一些功能結束之前定義了我的功能。

ng-repeat創建新的作用域。 您必須不同地引用保存方法:

 <body ng-controller="MyPageCtrl as pageCtrl">
   <div class="row" ng-repeat="editPhone in studentDetail ">
      <button class="btn btn-sm btn-success btn-addon" ng-click="pageCtrl.saveContactNumbers(editPhone.studentid,'permanent',editPhone.per_tel)"></button>
   <div>
</body>

控制器:

   (function () {
    'use strict';

    angular
        .module('app')
        .controller('MyPageCtrl', MyPageCtrl);

    MyPageCtrl.$inject = ['$window'];

    function MyPageCtrl($window) {
        /* jshint validthis:true */
        var vm = this;

        vm.saveContactNumbers = function (studentId, type, telephone) {
        //save student details
        }
    }
})();

請以字符串形式傳遞參數

<button class="btn btn-sm btn-success btn-addon" ng-click="saveContactNumbers('editPhone.studentid','permanent','editPhone.per_tel')">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM