gpt4 book ai didi

javascript - 访问某个页面两次后数据不显示

转载 作者:行者123 更新时间:2023-11-28 02:17:39 26 4
gpt4 key购买 nike

您好,我正在使用 Durandal、knockout 和 renderjs 构建 SPA 应用程序,从一个页面转到另一个页面时我似乎发现了一个问题。

这就是我当前模型的样子:

define(['services/logger', 'services/dataService', 'durandal/plugins/router'],
function (logger, dataService, router) {
var allModulesObservableCollection = ko.observableArray();
var isInitialized = false;
var activeSaIdParameter = "";

var vm = {
//bindable
title: ko.observable(''),
dataLoading: ko.observable(false),
hasErrors: ko.observable(false),
errorMessage: ko.observable(''),

courseName: ko.observable(''),
allModules: allModulesObservableCollection,

//operations
refreshData: refreshData,
showActiveModules: showActiveModules,
activate: activate,
};

return vm;

function activate(context) {
logger.log('All Modules View Activated', null, 'allModules', true);
if (!isInitialized) {
activeSaIdParameter = context.activeSaId;
isInitialized = true;
fetchModulesData(context.activeSaId);
return fetchHeaderData(context.activeSaId);
} else {
if (context.activeSaId != activeSaIdParameter) {
activeSaIdParameter = context.activeSaId;
fetchModulesData(context.activeSaId);
return fetchHeaderData(context.activeSaId);
}
}
}


function fetchModulesData(activeSaId) {
vm.dataLoading(true);
vm.hasErrors(false);
return dataService.getAllModulesInCourse(activeSaId)
.then(fetchModulesCompleted)
.fail(fetchDataFailed);

function fetchModulesCompleted(data) {
allModulesObservableCollection(data);
debugger;
vm.dataLoading(false);
}
}

function showActiveModules() {
var url = '#/activeModules/' + activeSaIdParameter;
router.navigateTo(url);
}
});

第一次数据显示正确,一切正常。但是在转到另一个页面然后尝试返回此页面后,浏览器就像完全忽略了 javascript 代码。

ShowActiveModules() 负责将用户带到其同级页面。

在调试时,我注意到在返回此页面后,浏览器甚至不再运行此代码。我必须完全刷新页面才能获取数据并显示它。

谁能告诉我我做错了什么?

最佳答案

它不会再次运行该文件,因为 RequireJS 仅读取该文件一次。

乍一看,您的“激活”函数应该会再次被调用。您是否尝试过在“激活”函数上设置断点?

关于javascript - 访问某个页面两次后数据不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164631/

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