我有一个单页应用程序,该应用程序使用挖空进行数据绑定。我的单页应用程序中的CAApproval.html视图在视图模型代码中有一个名为AllCertificates的可观察队列。它在页面上填充得很好。当您通过单击页面的navigation.html部分中的链接离开该视图,然后返回CAApproval页面时,上一次访问的值仍在AllCertificates observableArray中,因此会显示在CAApproval视图中。
我需要在每次用户返回到使用该观察窗的CAApproval页时清除AllCertificates观察窗的内容,这样,如果用户离开该页并返回,观察窗的内容将为空,因此屏幕上不会显示任何数据。
define(['services/logger', 'durandal/system', 'durandal/plugins/router', 'services/CertificateDataService','controls/Lucas'],
function(logger, system, router, CertificateDataService) {
var allCertificates = ko.observableArray([]);
var activate = function () {
// go get local data, if we have it
return SelectAllCerts(),SelectMyCerts(), GetCertificateDetails(), GetDDABankNums();
};
var vm = {
activate: activate,
allCertificates: allCertificates,
SelectAllCerts: SelectAllCerts
});
return vm;
function SelectAllCerts() {
return CertificateDataService.getallCertificates(allCertificates);
}
});
如何在用户每次访问该页面时清除observablearray的内容(不是在页面本身内导航时,只有当用户来自另一个页面时才清除observablearray)?
4条答案
按热度按时间xmakbtuz1#
同样,knockout
observableArray
也有一些有趣的方法。调用removeAll
来清除所有项目。看看官方网站observable array manual。
ohfgkhjo2#
只需在activate函数中将其设置为nothing(
allCertificates([])
)即可,该函数在每次加载视图模型时都会调用-goqiplq23#
对于杰里米T(评论空间不够)。
第一个原因,对我来说绝对足够的是存在公开可用的API用于所需的目的。
但是要估计性能,您可以检查源代码。“observableArray”也是“可观察的”,并向对象中注入了其他函数。
初始化如下所示:
并删除所有元素,如下所示:
rxztt3cl4#
初始化数组变量
删除数组的所有值