2016-06-24 5 views
1

Я только начал изучать Angular, и я посмотрел на SO для решения загрузить файл JSON с помощью углового, и я сделал то, что другие люди разместили, но я не могу получить данные из моего json файл для показа по какой-либо причине.Загрузите файл JSON с помощью AngularJS

мой файл в формате JSON (test.json) прост:

{ 
    "array": [ 
     {"thing": "thing1"}, 
     {"thing": "thing2"}, 
     {"thing": "thing3"} 
    ], 

    "name": "robert" 
} 

это мой JS файл:

var myMod = angular.module("myMod", []); 

myMod.controller("myCont", function ($scope, $http) { 
    $scope.thing = "hi"; 

    $http.get("/test.json") 
      .success(function (data) { 
       $scope.stuff = data.array; 
       $scope.name = data.name; 
      }) 
      .error(function (data) { 
       console.log("there was an error"); 
      }); 
}); 

и я пытаюсь просто отобразить имя, как это, но только {{name}} показывает:

<html ng-app="myMod"> 
    <head> 
     <script src="angular.js"></script> 
     <script src="testing.js"></script> 
    </head> 

    <body ng-controller="myCont"> 
     {{stuff}} 
    </body> 
</html> 
+0

Что показывают ваши сетевые инструменты? –

+0

Добавьте console.log в .success, чтобы узнать, вызвано ли оно –

+0

. В консоли ничего не появилось. ошибка была: ошибка: [$ инжектор: unpr] Неизвестный поставщик: $ htmlProvider <- $ html <- myCont' – winsticknova

ответ

2

Я думаю, что вы были опечатка, вы должны вводить $http (ответственный для вызова ajax) вместо $html (не существует в угловом)

Вы должны изменить код таким образом.

myMod.controller("myCont", function ($scope, $html) { 

в

myMod.controller("myCont", function ($scope, $http) { 
+0

да, это сработало! не знаю, почему я печатал '$ html' – winsticknova

+0

Я исправил ваш код. – Developer

+0

Я думаю, вы пропустили $ html – Developer

0

Как Панкай Parkar заявил, $ HTTP является то, что вам нужно.

Вот plunker я создал с ним работать: http://plnkr.co/edit/d0DDU29uitMcwK6qA7kx?p=preview

app.js файл с $ HTTP вместо $ HTML:

var myMod = angular.module("myMod", []); 

myMod.controller("myCont", function ($scope, $http) { 
    $scope.thing = "hi"; 

    $http.get("test.json") 
      .success(function (data) { 
       $scope.stuff = data.array; 
       $scope.name = data.name; 
      }) 
      .error(function (data) { 
       console.log("there was an error"); 
      }); 
}); 
0

Если кто-то пытается это получаю ошибку:

$http.get(…).success is not a function 

Видимо синтаксис изменен для Углового> 1.6. В принятом ответе здесь есть новый синтаксис: $http.get(...).success is not a function

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