2014-04-20 2 views
0

У меня есть завод, который не работает:

toDoListApp.factory("blahFactory", function($http) { 
    return { 
     getChores : function() { 
      return $http({ 
       url: '/chore.json', 
       method: 'GET' 
      }) 
     } 
    } 
}); 

И в chore.json файл, содержащий данные:

{"name":"laundry","hours":"3"},{"name":"dishes","hours":"0.5"},{"name":"blah","hours":"1.5"} 

И мой контроллер использует этот завод, но перерывы в этой строке:

toDoListApp.controller("ChoresController", function($scope, choresFactory, blahFactory) { 

    blahFactory.getChores().success(function(data) { 
     $scope.blah = data; 
     console.log(data); 
    }); 

    .... 

След в моей консоли firebug не очень очерчен: Error: JSON.parse: unexpected non-whitespace character after JSON data + куча угловатого мусора, который не имеет смысла. Может ли кто-нибудь помочь объяснить? Является ли мой JSON недействительным?

=== UPDATE ===

Ok, так что я пытаюсь поставить скобки массива в файл JSON и изменил функцию $ http.get в моей фабрике использовать cache: false, но он по-прежнему Безразлично «т обновить JSON, потому что он кэшируется ...

=== ОТВЕТА ===

Так я удалил работали хром кэш и добавлены скобки массива, и все!

+1

Ваши данные json dosen't выглядят должным образом отформатированными. Должно быть внутри массива. – aludvigsen

ответ

3

Ваш JSON неверен. У вас просто есть три объекта рядом друг с другом, вместо этого помещайте их в такой массив.

[ 
    {"name":"laundry","hours":"3"}, 
    {"name":"dishes","hours":"0.5"}, 
    {"name":"blah","hours":"1.5"} 
] 

все остальное выглядит великолепно.

+0

О, хорошо. но еще одна проблема, я думаю, что браузер сохраняет кеширование моего json, поэтому, когда я пытаюсь поиграть с ним, он никогда не обновляется в браузере, и я не знаю, исправляю ли я его или нет. Как остановить кеш? – Edmund

+0

прочитайте документацию. У службы $ http есть опция кеша. https://docs.angularjs.org/api/ng/service/$http – aludvigsen

+1

Правильно, я бы посоветовал вам дать этот ответ @Tyler. На ваш вопрос был дан ответ. – Dalorzo

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