2014-11-01 2 views
0

У меня есть этот объект:ngRepeat не петля массив

{ 
    "_id" : ObjectId("5454e173cf8472d44e7df161"), 
    "questionType" : 0, 
    "question" : "question1", 
    "answers" : [ 
     { 
      "content" : "answer1" 
     }, 
     { 
      "is_true" : "true", 
      "content" : "answer2" 
     }, 
     { 
      "content" : "answer3" 
     } 
    ], 
    "matches" : [], 
    "__v" : 0 
} 

И этот контроллер:

var questionIndexController = function ($scope, Question, $routeParams) { 
    var question = Question.get({id: $routeParams.id}); 
    $scope.question = question; 
}; 


angular.module("adminMain") 
    .controller("questionIndexController", ["$scope", "Question", "$routeParams", questionIndexController]); 

И эта разметка:

<h3>Question:</h3> 
<p>{{ question.question }}</p> 
<ul> 
    <li np-repeat="answer in question.answers"> 
     <span ng-show="answer.is_true">✓</span> 
     <span>{{ answer.content }}</span> 
    </li> 
</ul> 

Но, к сожалению, в результате HTML Безразлично Включите любые ответы от JSON. Это означает, что ngRepeat не прошел цикл question.answers.

<div ng-view="" class="ng-scope"><h3 class="ng-scope">Question:</h3> 
<p class="ng-binding ng-scope">question1</p> 
<ul class="ng-scope"> 
    <li np-repeat="answer in question.answers"> 
     <span ng-show="answer.is_true" class="ng-hide">✓</span> 
     <span class="ng-binding"></span> 
    </li> 
</ul> 
</div> 

Любая идея, как решить эту проблему?


Редактировать

Это код Вопрос завода:

var questionFactory = function($resource, restUrls) { 
    return $resource(restUrls.question.index, {}, { 
     save: { 
      url: restUrls.question.add, 
      method: "POST", 
      isArray: false 
     } 
    }); 
}; 

angular.module("adminMain").factory("Question", ["$resource", "restUrls", questionFactory]); 

где restUrls.question.index является "/api/questions/:id"

И код Node.js бэкенд для получения одного вопроса:

function indexQuestions(req, res, next) { 
    var questionId = req.params.id || null; 
    if(!questionId) next(errorHandler(404, "Not found")); 
    Question.findOne({ _id: questionId }, function(err, question) { 
     if(err) return next(err); 
     if(question.length === 0) return next(errorHandler(404, "Question not found")); 
     res.json(question); 
    }); 
} 

Когда я console.log(question), который вернулся из метода $resource я получаю нормальный посыл объект: enter image description here

+0

Что возвращает Question.get? Можете ли вы показать код метода Question.get? –

+0

@MichalCharemza Сделано, пожалуйста, проверьте вопрос еще раз. –

+0

Можете ли вы справиться с plunkr .. i rfeally не вижу проблем с кодом ... – harishr

ответ

4

Существует опечатка в:

<h3>Question:</h3> 
<p>{{ question.question }}</p> 
<ul> 
    <li np-repeat="answer in question.answers"> 
     <span ng-show="answer.is_true">✓</span> 
     <span>{{ answer.content }}</span> 
    </li> 
</ul> 

Там должен быть ng-repeat вместо np-repeate.

+0

О, ничего себе! Это действительно неудобно и впечатляет, заметив это! И, конечно, решил. Большое спасибо. –

+1

Добро пожаловать. Мы люди. Все ошибаются. – PrimosK

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