Получить значение из JSON с помощью службы в AngularJS?

0

Я новичок в AngularJS. Я пытаюсь извлечь данные из JSON с помощью сервиса и отобразить его. У меня есть отдельные файлы для контроллеров, служб. Я не могу узнать, что я делаю неправильно здесь. Я узнал, что мы возвращаем объект в случае фабрики, но я не уверен, как вернуть значение при использовании сервисов. Код, который я пробовал, приведен ниже.

HTML: У меня есть файл index.html в который я загружаю этот HTML-код:

<div ng-controller="comp">
    {{capcino}}
</div>

контроллер:

var app = angular.module("retailapp");

app.controller("comp", function($scope, elecservice){
    $scope.capcino = elecservice.getval();
});

Обслуживание:

angular.module("retailapp").service("elecservice", serjson);

function serjson($http){
    var val = "";

    this.getval = function(){
        $http.get("/elec.json").success(function(res){
            val = res.namet;
            return val;
        });
    }
}

Маршрутизация:

var app = angular.module("retailapp", ['ngRoute']);

app.config(function($routeProvider){
    $routeProvider.when("/computer", {
        templateUrl : "computer.html",
        controller : "comp"
});

JSON:

{"namet" : "naysan"}

Я хочу показать значение "capcino" в выражении в HTML. Я получаю undefined для этого значения. Пожалуйста, помогите с объяснением. Заранее спасибо.

Теги:
angular-services

3 ответа

0

Это обещание, поэтому он устанавливает $ scope.capcino после его возвращения. До тех пор, пока это не произойдет, значение $ scope.capcino не определено.

var app = angular.module("retailapp");
    app.controller("comp", function($scope, elecservice){
        elecservice.getval().then(function(data){
        $scope.capcino = data;
    });    
});
  • 0
    Вы просто копируете ответ @Vaqif_RV.
  • 1
    @ ElvinMammadov ты шутишь? Я разместил объяснение, код в любом случае будет таким же!
Показать ещё 3 комментария
0

Напишите, как следует:

var app = angular.module("retailapp");

    app.controller("comp", function($scope, elecservice){

        elecservice.getval().then(function(data){
        $scope.capcino = data;
    });    

    });
  • 0
    спасибо за ваш вклад .... Я только что попытался в соответствии с вашим предложением, но я получаю сообщение об ошибке "TypeError: Невозможно прочитать свойство 'then' из неопределенного"
0

Просто измените контроллер, чтобы сохранить данные.

$scope.yourFunc = function(params){
  YouService.function(params).then(function(result){
      $scope.yourVar = result.data;
    }
  })

}}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню