gpt4 book ai didi

asp.net-mvc - Durandal KO 绑定(bind) View 问题

转载 作者:行者123 更新时间:2023-12-02 08:42:25 26 4
gpt4 key购买 nike

我让 Durandal View 模型像这样工作:

define(function (require) {
var http = require('durandal/http');

return {
subjectItem: function (data) {
var self = this;
self.Subject_ID = data.Subject_ID;
self.Subject_Name = data.Subject_Name;
},
subjects: ko.observableArray([]),
activate: function () {
var self = this;
http.ajaxRequest("get", "/api/values/getsubjects")
.done(function (allData) {
var mappedSubjects = $.map(allData, function (list) { return new self.subjectItem(list); });
self.subjects(mappedSubjects);
});
}
};
});

然而,在第一次导航到这个 View 时,它运行 ajax 调用但不更改 dom,再次导航到它并且它们都出现(仍然运行 ajax 调用)。这是我的 html:

<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody data-bind="foreach: subjects">
<tr>
<td data-bind="text: Subject_Name"></td>
</tr>
</tbody>
</table>

任何线索,我对使用 Durandal 还很陌生,但现在担心它不会有效地保持 dom 更新。

最佳答案

我认为您的问题非常类似于:HotTowel: Viewmodel lose mapping when navigating between pages

AJAX 调用是一项异步任务,因此您需要在激活函数中返回一个 promise ,以告知 durandal 等待数据被检索后再继续应用绑定(bind)。

关于asp.net-mvc - Durandal KO 绑定(bind) View 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com