0

Angular UI の使用方法を示す SO の質問が見つかりました - $http オブジェクトでの Bootstrap typeahead 。Angular のバージョンを 1.2RC2 に変更するまでは問題なく動作していました (最初の plunk を参照)。理由を理解するのに十分なほどAngularコードを知りません。このコードを壊すために 1.05 と 1.2 の間で何が変更されたか

このプランクは機能します: http://plnkr.co/edit/eGG9Kj?p=preview

このプランクは機能しません: http://plnkr.co/edit/HdVBpp?p=preview

関連するコード

HTML

<html ng-app="plunker">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.js"></script>
    <script src="http://angular-ui.github.com/bootstrap/ui-bootstrap-tpls-0.2.0.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
  </head>
  <body>

    <alert type="'info'" >Typeahead from  <a href="http://angular-ui.github.com/bootstrap/">http://angular-ui.github.com/bootstrap/</a>"</alert>
    <div class='container-fluid' ng-controller="TypeaheadCtrl">
        <pre>Model: {{result | json}}</pre>
        <input type="text" ng-model="result" typeahead="suggestion for suggestion in cities($viewValue)">
    </div>
  </body>
</html>

Javascript

angular.module('plunker', ['ui.bootstrap']);
function TypeaheadCtrl($scope, $http, limitToFilter) {

  //http://www.geobytes.com/free-ajax-cities-jsonp-api.htm

  $scope.cities = function(cityName) {
    return $http.jsonp("http://gd.geobytes.com/AutoCompleteCity?callback=JSON_CALLBACK &filter=US&q="+cityName).then(function(response){
      return limitToFilter(response.data, 15);
    });
  };

}

Angular UI コードの 1564 行目で失敗しますmatches.length。一致するものが定義されていないため、見つけることができません。

4

1 に答える 1