2016-03-01 78 views
0

我的JavaScript是:NG表未呈現,行

$scope.questionsTable = new NgTableParams({}, { 
    getData: function($defer, params) { 
    return $http.get("/api/questions", { 
     params: searchParams 
    }).then(function(response) { 
     params.settings({ 
     total: response.data.count 
     }); 
     console.log(response.data.questions); 
     return $defer.resolve(response.data.questions); 
    }); 
    } 
}); 

而且response.data.questions絕對是一個數組。在我看來,我有

<table class="bordered striped highlight" ng-table="questionsTable"> 
    <tr ng-repeat="question in $data"> 
     <td class="top-td"> 
     <a href="#" ng-click="loadQuestionModal(question.id)"> 
      {{ question.id }} 
     </a> 
     </td> 
     <td class="top-td"> 
     <h6 markdown-to-html="question.Instruction.instructionText"></h6> 
     <blockquote ng-show="k8englishSubject" markdown-to-html="question.questionText"></blockquote> 
     <blockquote markdown-to-html="question.questionText" mathjax-bind="question.questionText" ng-show="k8mathSubject"></blockquote> 
     </td> 
     <td class="top-td"><ng-include src="'/views/partials/answerList.html'"></ng-include></td> 
     <td class="top-td" ng-show="k8englishSubject"> 
     <a ui-sref="passages.upsert({passageId: question.PassageId})" ng-show="question.PassageId"> 
      {{ question.Passage.passageTitle }} 
     </a> 
     </td> 
     <td class="top-td">{{ question.level }}</td> 
    </tr> 
</table> 

但是,我的表沒有行正在呈現。我究竟做錯了什麼?

+0

http://www.codelord.net/2015/09/24/$q-dot-defer-youre-doing-it-wrong/ –

+0

問題是,您正在使用請求異步的承諾,您的表格已經在promise完成時呈現並且您的html不會被刷新。 –

+0

看看這裏http://stackoverflow.com/questions/23325994/ng-table-not-working-for-dynamic-data/25381507#25381507 –

回答

0

原來我只是需要做

$scope.questionsTable = new NgTableParams({}, { 
    getData: function($defer, params) { 
    return $http.get("/api/questions", { 
     params: searchParams 
    }).then(function(response) { 
     params.settings({ 
     total: response.data.count 
     }); 
     console.log(response.data.questions); 
     return response.data.questions; 
    }); 
    } 
}); 

由於$http已經返回一個承諾。