2016-03-15 3 views
-1

Iam, способный отображать и фильтровать результаты поиска в одном представлении. Но как я могу создать окно поиска в заголовке navbar, которое является общим для всех страниц. При нажатии кнопки поиска следует открыть отдельную страницу и загрузить результаты поиска в алфавитном порядке из массива json на основе значения, введенного в поле поиска. Как это сделать? Просьба помочьКак сделать глобальный поиск в Angularjs из массива json?

+1

Я думаю, что мы, возможно, потребуемся немного дополнительной информация здесь. –

+0

Скажите нам, что вы пробовали .. Вы можете просто сказать это сделать. – amanuel2

ответ

0

Это один из способов атаки вашей проблемы. Если я правильно понял вашу проблему вы хотите отфильтровать массив JSON ...

Так позволяет сказать, что в mainCtrl мы имеем это:

$http({ 
    method: 'GET', 
    url: '/Users' 
}).then(function successCallback(response) { 
    $scope.usersJson = response; 
    }, function errorCallback(response) { 
    console.error("Something Happened..."); 
    }); 

Так позволяет сказать, что данные выше дает нам образец пользователей, выглядеть следующим образом:

"Username" : { 
"name" : "Username", 
"value" : "Hello World" 
} 

Тогда в нашем HTML, если мы хотим, чтобы пройти через данные:

<body ng-app="app" ng-controller="mainCtrl"> 
    <input type="text" ng-model="search" /> 
    <p ng-repeat="message in messages | filter: search"> 
    Name: {{ message.name }} 
    Message : {{message.value}} 
    </p> 
</body> 

Вы должны узнать больше о директиве ngFilter и фильтрации в AngularJS. В общем .. Here - это документы об этом .. Надеюсь, это помогло!

EDIT

Если вы хотите сделать это в несколько контроллеров, просто сделать службу, чтобы служить в качестве связи Разногласия между контроллерами ...

app.service("jsonArray", function($scope){ 
    this.getArray = function(){ 
    $http({ 
     method: 'GET', 
     url: '/Users' 
    }).then(function successCallback(response) { 
     return response; 
     }, function errorCallback(response) { 
     console.error("Something Happened..."); 
     }); 
    } 
}) 

Теперь вы можете вводить эту услугу к контроллер и просто выполните jsonArray.get(), чтобы получить список JSON.

Как внедрить сервис в контроллер?

Пример:

app.controller('mainCtrl', ["$scope", "jsonArray", function($scope, jsonArray){ 

}]) 

Надеется, что это помогло ..

+0

Он работает, если и вход, и результаты в том же виде с одним и тем же контроллером. Но если окно поиска является общим для всех страниц. И результаты поиска на разных страницах с другим контроллером. При нажатии кнопки поиска я открываю страницу результатов поиска. Так можете ли вы PLZ помочь связать между этими контроллерами – User1

+0

Отредактировано anwser, поэтому он обратился к проблеме с вашим теперь @ User1 – amanuel2

+0

Метод обслуживания не настроен должным образом, чтобы возвращать что-либо – charlietfl

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