2017-07-14 4 views
0

jQueryで角を設定するためのカスタムドロップダウンを作成したいが、jQuery .val(newValue)の後に角型モデルを更新できない。なぜjQueryを使うのですか?いくつかのページでは、〜500要素のドロップダウンがほとんどなく、純粋な角レンダリングが非常に遅いためです。ここでディレクティブの私のリンク機能は次のとおりです。JQueryとangularjs ng-modelとの統合

(scope, element) => { 
    const parent = $(element); 
    const field = parent.find('input'); 
    const list = parent.find('ul'); 
    scope.options.map(item => list.append(
    $('<li>') 
     .text(item.text) 
     .addClass(item.disabled && 'disabled') 
     .data({ 
     value: item.value, 
     disabled: item.disabled 
     }) 
     .click(function() { 
     const data = $(this).data(); 
     if (!data.disabled) { 
      field 
      .val(data.value) 
      .trigger('change'); 
      // also tried => scope.model = data.value; 
     } 
     }) 
)); 
} 

そして、これはテンプレートです:

ここ
<div class="dropdown"> 
    <input 
    type="text" 
    readonly 
    placeholder="Select item" 
    ng-model="model" 
    ng-change="change"> 
    <ul></ul> 
</div> 

私は.trigger('change')と呼ばれるべきで見つけましたが、それはモデルを変更する角度助けないのstackoverflowに。どのように角度モデルを更新できますか?

+2

を見つけましたか? – Jorg

答えて

0

私は答え

scope.$parent.$apply(() => { 
    scope.model = data.value; 
}); 

代わりの

field 
    .val(data.value) 
    .trigger('change'); 
その中に500点の値とドロップダウンを使用したい
関連する問題