2015-07-03 4 views
2

Я только начинаю с Ionic framework. Есть ли способ реализовать текстовое поле автозаполнения в ионном?Автоматическое заполнение текстового поля с помощью angularJS

Я искал ионные форумы, а также googled, но ничего не нашел.

+0

Пример здесь: http://codepen.io/calendee/pen/pCwyx/ –

+0

Посмотрите на угловые фильтры для очень простой способ сделать это, если все данные находятся на стороне клиента. Если вам нужно сделать запрос при каждом нажатии клавиши, ознакомьтесь с директивой ng-change (поиск по угловым, не ионным, для ваших проблем с JS) – grogro

ответ

0

В кодефене у вас есть полный example.

<html ng-app="ionicApp"> 


<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 

    <title>Ionic Template</title> 

    <link href="http://code.ionicframework.com/1.0.0-beta.2/css/ionic.css" rel="stylesheet"> 
    <script src="http://code.ionicframework.com/1.0.0-beta.2/js/ionic.bundle.js"> 
    </script> 
    </head> 
    <body ng-controller="MyCtrl"> 

    <ion-header-bar class="bar-positive"> 
     <h1 class="title">{{myTitle}}</h1> 
    </ion-header-bar> 
    <ion-header-bar class="bar-subheader item-input-inset"> 
    <label class="item-input-wrapper"> 
    <i class="icon ion-ios7-search placeholder-icon"></i> 
    <input type="search" placeholder="Search" ng-change="search()" ng-model="data.search"> 
    </label> 
    <button class="button button-clear"> 
    Cancel 
    </button>  
    </ion-header-bar> 
    <ion-content> 
     <div class="list"> 
     <li class="item" ng-repeat="airline in data.airlines">{{airline.name}}</li> 
     </div> 
    </ion-content> 

    </body> 
</html> 
+0

Код кодекса не позволяет выбрать результат поиска – singh

+0

Кодепен не делает Не работайте, не можете выбрать результат – Yatin

+0

@JotiBasi Basi Просто добавив ng-click, вы можете заставить его работать. Вы не можете понизить кого-то, основываясь на том, о чем вы действительно не знаете. Не прилагайте никаких усилий! –

0

Это требует только добавления опции нг-клик

<li class="item" 
     ng-repeat="airline in data.airlines" 
     **ng-click="doSomethingWithSelectedItem(airline)"**> 
    {{airline.name}} 
</li> 
0

Вы можете реализовать функции автозаполнения в AngularJS с помощью директивы, как показано ниже.

Сначала создайте контроллер для обработки действий для ввода текстового поля, как показано ниже

app.controller('autoCompleteController', function($scope, $window, autoSearchFactory) { 

$scope.inputWidth = '200'; 
$scope.toggleAutoSearch = 'none'; 
$scope.searchText = ''; 

$scope.searchData = null; 

$scope.initiateAutoSearch = function() { 
    $scope.toggleAutoSearch = 'visible'; 
    autoSearchFactory.getCountries($scope.searchText).then(function(data) { 
    $scope.searchData = data; 
    }); 
} 

$scope.selectedSearchResult = function(input) { 
    $scope.searchText = input; 

    $scope.toggleAutoSearch = 'none'; 
} 
}); 

Затем создайте службу для извлечения результатов из веб-службы. Эта услуга извлекает результаты из API в формате JSON, используя метод HTTP get.

app.service('autoSearchFactory', function($http, $q, $window) { 
return { 
    getCountries : function(countryName) { 
    return $http.get('https://restcountries.eu/rest/v2/name/' + countryName).then(function(response) { 
     return response.data; 
    }, function(errResponse) { 
     console.error('Error while fetching users'); 
     return $q.reject(errResponse); 
    }); 
    } 
}}); 

Затем, наконец, создать вам директиву

<div class="input-box" style="width: {{inputWidth}}px"> 

<input type="text" ng-model="searchText" ng-keyup="initiateAutoSearch();" /> 

<div class="auto-result" style="width: {{inputWidth}}px; display: {{toggleAutoSearch}}"> 
    <ul ng-repeat="var in searchData"> 
    <li ng-click="selectedSearchResult(var.name)">{{var.name}}</li> 
    </ul> 
</div> 

</div> 

Вот и все.

Вы также можете найти полный пример здесь Auto Complete Text Box using AngularJS

Смежные вопросы