У меня есть простое требование, в котором отображается список пользователей и отображается кнопка поиска сверху, чтобы искать пользователей по имени, что-то вроде упрощенной страницы ссылок LinkedIn.Директива AngularJs Typeahead не работает
Мое веб-приложение разработано на node.js, но эта страница была разработана на angular.js, и для этой кнопки поиска я решил использовать директиву typeahead. Это как файл нефрит выглядит следующим образом:
html(ng-app='geniuses')
head
title List All Geniuses!
link(href='//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css', rel='stylesheet')
script(src='http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js')
script(src="https://cdn.firebase.com/js/client/2.2.4/firebase.js")
script(src="https://cdn.firebase.com/libs/angularfire/1.1.2/angularfire.min.js")
script(src='js/listAllgeniuses.js')
body
div.container
div.page-header
h2 All Geniuses!
div(ng-app='geniuses',ng-controller='SearchAGenius')
input.form-control(placeholder='Genius',name='search-genius',ng-model="selected",typeahead="user for user in usersArr | filter:{'geniusid':$viewValue} | limitTo:8")
div(ng-app='geniuses',ng-controller='GetAllGeniuses')
ul
li(ng-repeat='user in users') {{ user.geniusid }}
Список пользователей является неправдоподобным как массив из firebase. Как вы можете видеть, список пользователей извлекается с помощью контроллера GetAllGeniuses и она отлично работает .. Вот код контроллера:
(function (angular) {
var app = angular.module('geniuses', ["firebase"]);
app.controller('GetAllGeniuses', ["$scope", "$rootScope","$firebaseArray",
function($scope, $rootScope, $firebaseArray) {
var users = $firebaseArray(new Firebase("****));
$rootScope.usersArr = users;
$scope.users = users;
}
])
app.controller('SearchAGenius', ["$scope", "$rootScope",
function($scope, $rootScope) {
$scope.selected = '';
$scope.usersArr = $rootScope.usersArr;
}
])
}(angular));
Это, как данные выглядят, как (манекен):
[
{
geniusid: "new",
geniusname: ""
},
{
geniusid: "new",
geniusname: ""
},
{
geniusid: "news",
geniusname: ""
},
{
geniusid: "qazwsx",
geniusname: ""
}
]
Я хочу поискать гениальность (или имя) в окне поиска ... Я пробовал почти все идеи, размещенные в сети, но не смог понять это.
Любые идеи были бы оценены ,
Это работало как шарм! Огромное спасибо!! – Sagar
У меня есть один вопрос об этом, хотя .. Условие if на Factory проверяет, является ли _user нулевым или нет. Таким образом, это будет загружаться только один раз, пока приложение запущено? Что делать, если новые пользователи добавлены? Есть ли способ принудительного обновления этого списка? – Sagar
Вам нужно будет написать метод в службе, который позволит вам вводить новых пользователей в массив или обновлять массив из firebase. Я знаю, что это не идеальное решение, но оно работает. – jdpipkin