如何在Firebase中使用ng-autocomplete

时间:2016-07-07 08:22:49

标签: angularjs autocomplete firebase

我想用firebase使用ng-autocomplete看看我的html

<!DOCTYPE html>
<html ng-app="Test">
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css"href="style.css">

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.js"></script>
    <script src="script.js"></script>
    <script src="ngAutocomplete.js"></script>


</head>

<body>

<div ng-controller="TestCtrl">

<form id="form" role="form">

    <div class="form-group move-down">
        <label for="Autocomplete">Generic Autocomplete</label>
        <input type="text" id="Autocomplete" class="form-control" ng-autocomplete="result1" details="details1" options="options1"/>
    </div>
    <div>result: {{result}}</div>

</form>
</div>


</body>
</html>

这是我的script.js

angular.module( "Test", ['ngAutocomplete'])
  .controller("TestCtrl",function ($scope) {

    $scope.result1 = '';
    $scope.options1 = null;
    $scope.details1 = '';

  });

这是ngAutocomplete.js

angular.module( "ngAutocomplete", [])
  .directive('ngAutocomplete', function($parse) {
    return {

      scope: {
        details: '=',
        ngAutocomplete: '=',
        options: '='
      },

      link: function(scope, element, attrs, model) {

        //options for autocomplete
        var opts

        //convert options provided to opts
        var initOpts = function() {
          opts = {}
          //if (scope.options) {
            /*if (scope.options.types) {
              opts.types = []
              opts.types.push(scope.options.types)
            }*/


         // }
        }
        initOpts()

        //create new autocomplete
        //reinitializes on every change of the options provided
        var newAutocomplete = function() {
          scope.gPlace = new google.maps.places.Autocomplete(element[0], opts);
          google.maps.event.addListener(scope.gPlace, 'place_changed', function() {
            scope.$apply(function() {
              if (scope.details) {
                scope.details = scope.gPlace.getPlace();
              }
              scope.ngAutocomplete = element.val();
            });
          })
        }
        newAutocomplete()

        //watch options provided to directive
        scope.watchOptions = function () {
          return scope.options
        };
        scope.$watch(scope.watchOptions, function () {
          initOpts()
          newAutocomplete()
          element[0].value = '';
          scope.ngAutocomplete = element.val();
        }, true);
      }
    };
  });

我想使用firebase自动完成或城市数组而不是谷歌地图API。所以,请你告诉我如何使用它。

1 个答案:

答案 0 :(得分:1)

而不是这个

<input type="text" id="Autocomplete" class="form-control" ng-autocomplete="result1" details="details1" options="options1"/>

应该是

<input type="text" id="Autocomplete" class="form-control" ng-autocomplete ng-model="result1" details="details1" options="options1" />

请在此处找到工作plunker

请参阅此处ngAutocomplete的文档

相关问题