0

モーダルでユーザーがコンテンツを削除できるので、モーダルをユーザーが必要とする回数だけ呼び出すことが目標です。ページを再読み込みせずにもう一度クリックすると問題が発生します。角度/ブートストラップモーダルWONT呼び出し2回TypeError:v2.deleteModalProjectは関数ではありません

私は今、約2時間半のためにグーグルとグーグルいる角度1.5.6

を使用しています。

アイブ氏は、ここでは、このstackoverflowの質問から例を使用して、運を追加jQueryを使ってランダムなIDを持つユニークなdiv要素を配置してみました:

ここTwitter Bootstrap Modal Multiple event firing

は私のモーダルHTMLです。

<div class='modal fade' id='deleteModalProfile' role='dialog'> 
     <div class='modal-dialog'> 
      <!-- Modal content--> 
      <div class='modal-content'> 
      <div class='modal-header'> 
       <button type='button' class='close' data-dismiss='modal'>&times;</button> 
       <h4 class='modal-title'>{{modal.title}}</h4> 
      </div> 
      <div class='modal-body'> 
       <p>{{modal.body}}.</p> 
      </div> 
      <div class='modal-footer'> 
       <button ng-show='modal.project' class='btn btn-default' ng-click='removeProject()'>Yes</button> 
       <button ng-show='modal.goal' class='btn btn-default' ng-click='removeGoal()'>Yes</button> 
       <button type='button' class='btn btn-default' data-dismiss='modal'>No</button> 
      </div> 
      </div> 

     </div> 
     </div> 

ここに私の関数は2回呼び出されません。

 $scope.deleteModalGoal = function(goal, index) { 
     $scope.modal = {"goal": true, "project": false, "title": "Delete Goal?", "body": "Do you want to delete " + goal.task + " in " + goal.title + "?"} 
     $scope.deleteModalGoalIndex = index; 
     $scope.deleteModalGoal = goal; 
     $("#deleteModalProfile").modal("toggle"); 
    } 

これは私のインデックスhtmlです。

 <div ng-include="'views/modal.html'"></div> 
    <button type="button" ng-click="deleteModalGoal(goal, $index)" class="btn btn-danger projectTaskDelete"> <i class="fa fa-trash"></i> Task </button> 

私はオプションがないので、私は投稿しました。

はお時間をいただき、ありがとうございます、 ダニエル

+0

角度ブートストラップまたはjQueryブートストラップバージョンを使用していますか? –

+0

https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js。あなたの時間をありがとう、これは私が実行しているブートストラップのファイルです。 –

答えて

2

「例外TypeError:v2.myFunctionは関数ではありません」の関数は、変数と同じ名前を持つ場合に、第2クリックで発生します。 Angularの$スコープは、関数ではない別の変数によって上書きされています。

"s"を関数名に追加しました。これで問題は解決しました。 $ scope.deleteModalGoals = function()... $ scope.deleteModalGoals = function()...これを修正します。

固定

https://github.com/angular/angular.js/issues/12353

 $scope.deleteModalGoals = function(goal, index) { 
    $scope.modal = {"goal": true, "project": false, "title": "Delete Goal?", "body": "Do you want to delete " + goal.task + " in " + goal.title + "?"} 
    $scope.deleteModalGoalIndex = index; 
    $scope.deleteModalGoal = goal; 
    $("#deleteModalProfile").modal("toggle"); 
} 

オリジナル:

 $scope.deleteModalGoal = function(goal, index) { 
    $scope.modal = {"goal": true, "project": false, "title": "Delete Goal?", "body": "Do you want to delete " + goal.task + " in " + goal.title + "?"} 
    $scope.deleteModalGoalIndex = index; 
    $scope.deleteModalGoal = goal; 
    $("#deleteModalProfile").modal("toggle"); 
} 

希望そこに誰かに役立ちます!

関連する問題