2016-11-07 6 views
0

私はドロップダウンに画像を持つ先読みを実装しています。問題は、ドロップダウンの項目をクリックすると選択されないことです。ここで角度Js - クリックしたときに値が選択されないのはなぜですか?

<body ng-app="TypeaheadDemo"> 
    <script type="text/ng-template" id="customTemplate.html"> 
    <a> 
     <img ng-src="{{match.model.img}}" width="16"> {{match.model.name}} 
    </a> 
    </script> 

    <div class="container-fluid" ng-controller="TypeaheadCtrl"> 
    <h1>Angular UI Bootstrap Typeahead</h1> 
    <input type="text" ng-model="query" class="form-control" typeahead="name as result.name for result in results | filter:{name:$viewValue}" typeahead-template-url="customTemplate.html" /> 
    </div> 
</body> 

    angular.module("TypeaheadDemo", ['ui.bootstrap']) 
    .controller('TypeaheadCtrl', ['$scope', function($scope) { 

    $scope.results = [{ 
     name: "California", 
     img: "https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_California.svg/45px-Flag_of_California.svg.png" 
    }, { 
     name: "Delaware", 
     img: "https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Flag_of_Delaware.svg/45px-Flag_of_Delaware.svg.png" 
    }, { 
     name: "Florida", 
     img: "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Flag_of_Florida.svg/45px-Flag_of_Florida.svg.png" 
    }]; 
    }]); 

は、あなたの表現が間違って構築されているhttp://jsfiddle.net/pqe3pf89/

答えて

1

あなたがそのように好きではない場合、あなたはselect asを使用することができますjsfiddleするためのリンクです。あなたがそうする方法は、あなたのモデルに何も選択しないことです。

あなたが怒鳴るのコードのように見えるためにあなたの表現を変更することができます作業してコードを取得するには:それはあなたの ngModelの値として result.nameを選択し、 $viewValueを使用して result項目値のプロパティ nameによってあなたのリストをフィルタリングします。

typeahead="result.name for result in results | filter:{name: $viewValue}" 
1

@Lenilson・デ・カストロが正しいですが、それが唯一の選択した結果の名前プロパティに$scope.queryを結合する...つまり、「カリフォルニア」、「フロリダ」、...

ご希望の場合$scope.queryを完全な結果オブジェクトにバインドするには、次を使用できます。

typeahead="result as result.name for result in results | filter:{name: $viewValue}" 
関連する問題