2016-05-03 3 views
3

国のドロップダウンの自動補完を実装する必要があります。私はangularjs 1.4バージョンを使用しています。anglejsオートコンプリートでこのエラーを解決するには "iElement.autocompleteは関数ではありません"

この自動補完の実装については、このウェブサイトclick hereを参照しました。

が、そのは、このエラーを示すが、私はここに

を含める必要が任意のJSファイルを上記code.Isを実装しながら、私のhtmlコード

<div ng-app='MyModule'> 
    <div ng-controller='DefaultCtrl'> 
     <input auto-complete ui-items="countries" ng-model="selected"> 
     selected = {{selected}} 
    </div> 
</div> 

JSがある「iElement.autocompleteは関数ではありません」

var app = angular.module('MyModule', []); 

    app.controller('DefaultCtrl', function($scope) 
    { 
    $scope.countries = [ 
     {name: 'Afghanistan', code: 'AF'}, 
     {name: 'Antigua and Barbuda', code: 'AG'}, 
     {name: 'Bahamas', code: 'BS'}, 
     {name: 'Cambodia', code: 'KH'}, 
     {name: 'Cape Verde', code: 'CV'}]; 
    }); 


    app.directive('autoComplete', function($timeout) { 
     return function(scope, iElement, iAttrs) { 
       iElement.autocomplete({ 
        source: scope[iAttrs.uiItems], 
        select: function() { 
         $timeout(function() { 
          iElement.trigger('input'); 
         }, 0); 
        } 
       }); 
     }; 
    }); 

は事前

+0

は、基本的にはデフォルトで要素とを指し、そのような方法を持っていない、ので、あなたはこのエラーを得ています。 アプリ宣言に注入する必要があるような依存関係があるようです。 必要なスクリプトを含めて逃しているかもしれません。 –

答えて

2

で電子をお願いしますファイルあなたが参照しているサンプルでは古い(角1.0.0)ようで、これが現在の1.5で動作するかどうかはわかりません。とにかく、Typeaheadの指示書from Angular-UIをご覧になることをお勧めします。あなたのニーズに合わせて編集できるプランナーの例もあります。

データはworking exampleです。

HTML:

<div ng-controller="MainCtrl"> 
    <h4>Custom templates for results</h4> 
    <pre>Model: {{selected | json}}</pre> 
    <input type="text" ng-model="selected" uib-typeahead="country as country.name for country in countries | filter:{name:$viewValue}" class="form-control" typeahead-show-hint="true" typeahead-min-length="0"> 
</div> 

JS:iElementとして

angular 
    .module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']) 
    .controller('MainCtrl', function($scope, $http) { 
    //ngModel value 
    $scope.selected = undefined; 
    //lookup values 
    $scope.countries = [ 
     {name: 'Afghanistan', code: 'AF'}, 
     {name: 'Antigua and Barbuda', code: 'AG'}, 
     {name: 'Bahamas', code: 'BS'}, 
     {name: 'Cambodia', code: 'KH'}, 
     {name: 'Cape Verde', code: 'CV'} 
    ]; 
    }); 
+0

は、選択された値に基づいて$ httpを使ってuib-typeheadデータを動的に取得する方法はありますか? - ありがとう、初心者の角現像剤 –

関連する問題