0
這是我第一次嘗試使用Knockout javascript。我非常天真,所以請原諒我的問題。在django模板中使用knockout.js填充表格
我有一個視圖,它給出了JSON響應。
views.py
def get(self, request, code, format=None):
data = self.get_details(code)
paginator = Paginator(data, self.paginate_by)
page = request.GET.get('page', 1)
context = {}
try:
data_sent = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
data_sent = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
data_sent = paginator.page(paginator.num_pages)
context['data'] = self.get_user(chain_code)
context['page_object'] = data_sent.object_list
context['code'] = code
data = json.dumps(context, cls=DjangoJSONEncoder)
return HttpResponse(data)
我想在我的Django的模板,像這樣使用該響應來填充情境[ '數據']在表:
Id Name Status
1 xyz 1
2 abc 2
datalist.html
<script src="{% static "jsscript/datalist.js" %} "></script>
<div class = "container">
<div class = "page-header">
<!---all headers data --->
</div>
<div class="tab-content">
<table class="table table-bordered listingtable" >
<thead>
<tr>
<th style="width: 10%;">Id</th>
<th style="width: 10%;">Name</th>
<th style="width: 20%;">Status</th>
</tr>
</thead>
<tbody>
<!----script to populate table--->
</tbody>
</table>
我已經經歷了knockout.js的官方教程,但我不確定如何從我的API訪問響應並填充模板中的表。
我迄今爲止嘗試:
datalist.js
var ViewModel = function(data) {
var self = this;
self.Id = ko.observable(data.id);
self.Name = ko.observable(data.name);
self.status = ko.observable(data.status);
};
ko.applyBindings(new ViewModel(data));
我知道這個解決方案是完全錯誤的,但我只是不知道如何在正確的道路前進,CAN有人只是啓發我呢?
什麼,如果從視圖中的響應是不是一個數組但JSON? @ Matt.kaaj? –
根據您在問題中顯示的內容(2行),我使用了一個'JSON'對象數組。如果你的服務器只發送一個'JSON對象',那麼你不需要映射你的數據,你不需要'observableArray',你不能在表中使用'foreach'。看看這個https://jsfiddle.net/kyr6w2x3/112/ –