2013-03-15 5 views
2

Мое обслуживание захватывает данные JSON и успешно возвращает данные контроллеру, однако у меня возникла проблема с использованием ng-repeat для итерации по именам ключей.ng-repeat ключ не отображается с использованием данных JSON

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

В настоящее время ng-repeat повторяет правильное количество раз, но не отображает имя ключа.

Контроллер:

app.controller('getNav', function(getJSONData, $scope) { 
    var path = 'json/navigation'; 
    getJSONData.async(path).then(function(d) { 
     $scope.data = d;  
    }); 
}); 

Услуги:

app.factory('getJSONData', function($http) { 
    var getJSONData = { 
    async: function(path) { 
     var promise = $http.get(path).then(function (response) { 
     return response.data; 
     }); 
     return promise; 
    } 
    }; 
    return getJSONData; 
}); 

JSON данных:

{ 
    "data": { 
     "category_a": ["a", "b", "c", "d"], 
     "category_b": ["e", "f", "g"], 
     "category_c": ["h", "i", "j"] 
    }, 
    "response": "Navigation" 
} 

Вид:

<ul ng-controller="getNav"> 
    <li data-ng-repeat="(key, value) in data.data">Category name is: {{key}}</li> 
</ul> 
+1

Вы нг-повтора в порядке: [plunker] (http://plnkr.co/edit/CSvrUOmkcuS8qHUIbv1C). – Stewie

+0

Это меня смущает еще больше, потому что я не знаю, почему приведенный выше пример не работает. Контроллер успешно извлекает данные, и область видимости выполняет итерацию, но никогда не отображает имена ключей. – Malcr001

+0

Используйте 'console.log()' в вашей функции обратного вызова getJSONData, чтобы проверить/сбросить данные JSON, возвращаемые с вашего сервера, чтобы убедиться, что он отформатирован правильно. –

ответ

5

ОК так что надеюсь, я могу помочь кому-то в будущем, кто имеет такую ​​же проблему. Я потратил день на то, чтобы вытащить мои волосы за эту чертову вещь. После выделения файлов из моего движка google apps я обнаружил, что файлы работают на простом локальном хосте MAMP, но не на движке Google.

После некоторого поиска я узнал, что это было из-за противоречивых тегов шаблонов, которые угловой и DJango использует {{}}. Так просто установить угловую использовать что-то другое, и проблема будет отсортирован, смотрите здесь:

AngularJS with Django - Conflicting template tags

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

  • Нет связанных вопросов^_^