У меня есть файл JSON, у которого есть список пользователей. Я хочу получить только определенного пользователя из списка и отобразить его на индексной странице с помощью Angular. Я много искал, но не могу получить хороший ответ. Список должен находиться в файле JSON, а не в JS файле.
sampleApp.controller('userInfo', ['$scope', '$http', '$log', '$filter', function($scope, $http, $log,$filter) {
$scope.results = '';
$http.defaults.headers.common['X-Custom-Header'] = 'Angular.js';
$http.get('data/registered-user-list.json').
success(function(data, status, headers, config) {
$scope.results = data;
})
.error(function(data, status, headers, config) {
// log error
});
}]);
Файл JSON:
{ "results": [
{
"usernumber": "1",
"userid": "manojsoni",
"userpassword": "password",
"useremail": "[email protected]",
"timestamp": "1:30pm",
"datestampe": "25/01/2016"
},
{
"usernumber": "2",
"userid": "jasmeet",
"userpassword": "password",
"useremail": "[email protected]",
"timestamp": "1:30pm",
"datestampe": "25/01/2016"
},
{
"usernumber": "3",
"userid": "manoj30dec",
"userpassword": "password",
"useremail": "[email protected]",
"timestamp": "1:30pm",
"datestampe": "25/01/2016"
},
{
"usernumber": "4",
"userid": "lavish",
"userpassword": "password",
"useremail": "[email protected]",
"timestamp": "1:30pm",
"datestampe": "25/01/2016"
}
]}
вы можете так использовать
$http.get('data.json').then(function(response) {
console.log(response);
$scope.results = response;
},
function(error) {
$scope.results = [];
console.log(error);
});
Вы не указываете, на каком creatirea вы хотите отфильтровать пользователя.
предупреждение! success
и error
для $http
амортизируются, используйте then
вместо этого!
Уведомление об изъятии
$ Http legacy обещает, что методы успеха и ошибки устарели. Вместо этого используйте стандартный метод. Если для параметра $ httpProvider.useLegacyPromiseExtensions установлено значение false, то эти методы будут вызывать ошибку $ http/legacy.
// i will update this function when you provide more details
var getData = function(users){
for(var i in users{
if(users[i]["theFieldYouWant"] == theValueYouWant){
return users[i];
}
}
}
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
$scope.results = getData(response);
},
function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
}
);
методы успеха и ошибки устарели.
Вместо этого вы можете использовать 'then'
$http.get('data/registered-user-list.json').then(function(response) {
if (response.status == 200) {
$scope.results = data;
} else {
// log error
}
});
$http.get('data.json'). //json file path
success(function(data, status, headers, config) {
alert("Success");
$scope.resutls = data;
}).
error(function(data, status, headers, config) {
alert("Error");
// log error
});
Подобный вопрос я ответил здесь
Http файлы для json файлов и отображения
В последнем цикле результат и получить данные/пользователя, который вам нужен.