首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onsenui:"pushPage已经在运行“和”无法读取属性'removeEventListener‘的空“

问onsenui:"pushPage已经在运行“和”无法读取属性'removeEventListener‘的空“
EN

Stack Overflow用户
提问于 2017-07-30 23:22:55
回答 1查看 2.2K关注 0票数 0

我正在cordova + onsenui开发一个移动应用程序。基本上,我有一个通用的template.html,我首先加载它,然后使用所需的特定参数通过jquery进行修改。我首先执行ajax请求来获取该模板的详细信息,然后用

代码语言:javascript
复制
fn.pushPage({'id': 'template.html', 'title': 'View template'}); 

并更改jquery所需的所有参数。最初,应用程序将尝试在模板完成加载之前执行更改,而无法工作,所以我只是在jquery的onsuccess部分执行了一个泛型函数,如下面这个

代码语言:javascript
复制
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()

我在控制台中收到一条错误消息:

代码语言:javascript
复制
Uncaught (in promise) TypeError: Cannot read property 'removeEventListener' of null

如果我再试着看模板,我会得到

代码语言:javascript
复制
Uncaught (in promise) pushPage is already running.

如果我删除代码中修改模板的部分,所有内容都能正常工作,没有问题返回,没有错误消息,也没有再次加载模板的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 00:10:16

问题是,我用错误的方式修改了输入,

代码语言:javascript
复制
$('#inputNameId').html('text to replace');

正在破坏网站的html,在将其更改为

代码语言:javascript
复制
$('#inputNameId').val('text to replace');

一切正常运转。对于记录,如果您希望在模板加载完成后进行更改,则应该查看init方法以避免在javascript中等待,如下所示:

代码语言:javascript
复制
document.addEventListener('init', function(event) {
  var page = event.target;

  if (page.id === 'template') {
    //code to run
    };

});

其中模板是模板的id,如下所示:

代码语言:javascript
复制
<template id='generic.html'>
    <ons-page id='***template***'> 
...
    <ons-page>
<template>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45405643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档