2016-09-09 21 views
0

このライブラリ(https://select2.github.io/)を使用して検索可能なドロップダウンを実装しましたが、その動作は問題ありませんが、ボタンをクリックするとng-model値を取得できません。Angular-js:ng-modelが検索可能なドロップダウンで機能しない

<select ng-model="destination_name" class="js-example-basic-single form-control" > 
         <option selected disabled>Choose</option> 
         <?php foreach ($all_dest as $value): ?> 
          <option value="<?=$value->id?>"><?=$value->destination_name?></option> 
          <?php endforeach; ?> 
        </select> 
<input type="button" ng-click="addDest(destination_name)" value="{{btnTxt}}" name="add" class="btn btn-primary pull-right"/> 

検索ドロップダウンのためのjQuery

$(document).ready(function() { 
     $(".js-example-basic-single").select2(); 
    }); 

角度JSコード

$scope.addDest=function (value) { 
     alert(value); 

} 

ここaddDestボタンがある場合、ドロップダウンメニューで選択した値を渡す機能でありますクリックして を取得しますアイテムが選択されていても。

NOTE

私はjquery一部を隠したときに、それは私がng-model値を取得します検索可能なドロップダウンメニューを提供します。 jqueryの部分の問題だと思います。

+0

コード全体を共有すると便利です。一般的な答えとして、ビューを外部ライブラリで直接操作すると、AngularJSバインディングが正しく動作しないことがあります。これをチェックしてください:http://stackoverflow.com/questions/17159652/is-there-a-way-to-watch-attribute-changes-triggered-from-outside-the-angular-wor – CanB

答えて

1

ベストソリューション - お客様の選択ではなくhttps://github.com/angular-ui/ui-selectを使用してください。

次のソリューション - SELECT2変更イベントに

$scope.$apply(); 

を経由して選択してラッパーディレクティブと同期範囲を書きます。

+0

詳細を教えてください'$ scope。$ apply()'の説明 –

+0

http://stackoverflow.com/questions/39412210/refreshing-scope-variable-not-working-with-scope-function/39412556#39412556私の答えとコメントを読んでください。 –

関連する問題