2016-04-26 19 views
3

AngularJSでjQueryオートコンプリートを実装しました。element.trigger()がIEで動作しない

app.directive("autoComplete", function ($timeout) { 
     return { 
      restrict: "A", 
      link: function (scope, element) { 
       var location = ["OMAHA, NE", "OMAHA, TX", "DALLAS, TX", "DALLAS, NE"]; 

       element.autocomplete({ 
        source: location, 
        autoFocus: true, 
        delay: 0, 
        minLength: 3, 
        select: function() { 
         $timeout(function() { 
          element.trigger("input"); 
         }, 0); 
        } 
       }); 
      } 
     } 
    }); 

前に、ドロップダウンリストから選択されるオートコンプリート値がngModelJSFiddle example)に渡すことができませんでした。その後、私はelement.trigger("input");を追加し、すべて正常に動作します(ChromeまたはFirefox)。

しかし、問題はまだIEにあります(IE 11を使用しています)。オートコンプリート値が「Enter」または「左クリック」または「タブ」を使用してドロップダウンから選択された場合、ngModelに渡すことはできません。だから理由はelement.trigger("input"); IEで何とか働いていない。

何か助けていただければ幸いです。ありがとう!

答えて

1

解決策は以下のとおりです。

select: function() { 
    $timeout(function() { 
     //Assign the selcted value to ngModel: scope.<ngModelValue> = <selectedValue>; 
    }, 0); 
}