我正在cordova + onsenui开发一个移动应用程序。基本上,我有一个通用的template.html,我首先加载它,然后使用所需的特定参数通过jquery进行修改。我首先执行ajax请求来获取该模板的详细信息,然后用
fn.pushPage({'id': 'template.html', 'title': 'View template'}); 并更改jquery所需的所有参数。最初,应用程序将尝试在模板完成加载之前执行更改,而无法工作,所以我只是在jquery的onsuccess部分执行了一个泛型函数,如下面这个
function update_template(){
if ($('#templateItem').length) {
//this part runs if the template has loaded
//replace all the poarameters with jquery
} else {
window.setTimeout(edit_profile, 0.1); // 5 seconds
}
};这似乎工作正常,但在进入上一页后,返回按钮正在运行。
document.getElementById('appNavigator').popPage()
我在控制台中收到一条错误消息:
Uncaught (in promise) TypeError: Cannot read property 'removeEventListener' of null如果我再试着看模板,我会得到
Uncaught (in promise) pushPage is already running.如果我删除代码中修改模板的部分,所有内容都能正常工作,没有问题返回,没有错误消息,也没有再次加载模板的问题。
发布于 2017-08-01 00:10:16
问题是,我用错误的方式修改了输入,
$('#inputNameId').html('text to replace');正在破坏网站的html,在将其更改为
$('#inputNameId').val('text to replace');一切正常运转。对于记录,如果您希望在模板加载完成后进行更改,则应该查看init方法以避免在javascript中等待,如下所示:
document.addEventListener('init', function(event) {
var page = event.target;
if (page.id === 'template') {
//code to run
};
});其中模板是模板的id,如下所示:
<template id='generic.html'>
<ons-page id='***template***'>
...
<ons-page>
<template>https://stackoverflow.com/questions/45405643
复制相似问题