2016-04-25 17 views
0

同じコントローラを使用するモーダルでは双方向バインディングが動作しないのはなぜですか?ブートストラップモーダルangleJsで双方向バインディングが機能しない

私はコントローラにあるngモデルを使用してモーダルを持っていますが、モーダル上のデータを変更するたびにコントローラでは変更されません。

コントローラー:createEventControllerオブジェクトを保持

$scope.newEvent = 
     { 
      "name": "", 
      "location": "", 
      "latitude": "", 
      "longitude": "" 
      "taxoption": 
        { 
         "country": "", 
      ........ 

ビュー:

NG-モデル= "newEvent.taxoption.country"

<div ng-controller="createEventController" class="modal fade" id="ticketTaxModal" tabindex="-1" role="dialog" aria-labelledby="TicketTaxForm"> 
    <div class="modal-dialog" role="document"> 
    <div class="modal-content"> 

     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title" id="myModalLabel">Tax Options</h4> 
     </div> 

     <div class="modal-body" style="text-align: left;"> 
     <div class="form-horizontal"> 

      <div class="form-group"> 
      <label for="country" class="col-sm-2 control-label">Country</label> 
      <div class="col-sm-10"> 
       <select id="country" ng-model="newEvent.taxoption.country" class="form-control"> 
       <option value="CAN">Canada</option> 
       <option value="USA">United States</option> 
       </select> 
      </div> 
      </div> 
.............. 

モーダル指令:

directive("ticketTax", [function(){ 
    return{ 
     restrict: 'E', 
     templateUrl: 'app/partials/create/ticketTaxModal.html', 
     link: function(scope, elem, attrs){ 


     } 
    } 
}]); 

データをモーダルからコントローラに渡すにはどうすればよいですか?同じコントローラーがモーダルに割り当てられているので、なぜ2方向バインドが機能しないのか分かりません。インスタンスと何か?

+0

あなたの指示に 'require: 'ngModel'、'を追加し、コントローラー(scope、elem、attrs、ctrl)を保持するリンク関数に4番目の引数を追加してアクセスすることによってコントローラーを必要としている可能性があります。モーダルにそのようなディレクティブを使用している場合は、モデルを更新するためにウォッチャーを手動で設定する必要があると思います。 – Vaelyr

答えて

0

ビューのng-controllerを削除して修正しました。私はコントローラの別のインスタンスを作成して、双方向バインディングをブロックしていたと思います。

関連する問題