- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一款由 OnsenUI 提供支持的应用程序。它有多个页面。
我正在使用 postpush 事件来触发我的 ajax 数据请求。
如下所示。
$scope.navi.on('postpush', function () {
//ajax code here
});
现在的问题是,我的完整代码如下所示。
$scope.navi.pushPage('linkone.html');
$scope.navi.on('postpush', function () {
//ajax 1
});
$scope.navi.pushPage('linktwo.html');
$scope.navi.on('postpush', function () {
//ajax 2
});
如果我导航到 linkone.html 页面,它会触发 ajax1。之后,如果我导航到 linktwo.html,它会同时触发 ajax1 和 ajax2。
我只想触发相关的 ajax。但是这两个事件都被解雇了。如果我继续浏览页面,最终会触发太多请求。
谁能帮我解决这个问题?
最佳答案
您所解释的实际上是预期的行为。 on
方法添加了一个监听器,只要事件被触发就会执行。你似乎在添加更多的听众而不是删除它们。
备选方案:
一个简单的替代方法是 once
方法,它只会执行一次,然后会自动删除监听器。
您可以将 ajax 作为对 pushPage
的回调进行排队,而不是添加监听器 - 以下任一项:
$scope.navi.pushPage('linkone.html', {callback: ajax1});
$scope.navi.pushPage('linkone.html').then(ajax1);
应该没问题。
您可以添加一个监听器,它根据您的页面执行不同的操作:
$scope.navi.pushPage('linkone.html');
$scope.navi.on('postpush', function(ev){
if (ev.enterPage.id === 'page1') {
ajax1();
} else if (ev.enterPage.id === 'page2') {
ajax2();
}
});
同样的事情也可以通过页面的 init
事件来实现。
document.addEventListener('init', function(ev) {
if (ev.target.id === 'page1') {
ajax1();
} else if (ev.target.id === 'page2') {
ajax2();
}
});
但是请注意,在第三种选择中,page1
和 page2
必须是 ons-page
元素的 ID,不是 模板。
关于javascript - Onsen UI PostPush 事件回调触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38202366/
这是 what I've got迄今为止。首先是脚本: ons.bootstrap(); .controller('AppController', function($scope) { $scop
我在 Cordova 项目中使用 Onsen UI,如何制作像 chevron、tappable 等自定义修饰符?在文档中,这与http://onsen.io/guide/overview.html#
我目前正在使用 onsen ui 构建我的第一个cordova应用程序。到目前为止看起来很有希望!但是我遇到了一个我无法解决的问题,我找不到答案。 我希望这是一个初学者的问题,并且可以由更有温泉经验的
我需要在 Onsen Ui 中启动外部网址/网站,而无需离开应用程序。我猜想我可以在需要的 ons-page 标签之间使用 iframe,但可能不太可靠。 这是我的第一个 Onsen Ui 项目。 吉
当我调用时,我在一个 Onsen UI 主页上加载了一个 js 对象 ons.navigator.pushPage('child_page.html') 如何在子页面上获取 js 对象? 最佳答案 请
认为这将在网站上的某个地方,因为所有 3 个示例图像都是这样的: 也许它是用phonegap完成的?那里不用担心。 我尝试将 ons-navigator 和各种项目设置为透明、背景颜色等。 任何人都知
我有两页: page1.html 有一个按钮打开 page2.html 与 pushPage('page2.html') .然后我想有一个可选择的参数(我正在使用单选按钮)返回到 page1.html
下面的代码 var i=0; i++; ons.notification.alert({message: i}); i++; ons.notification.alert({message: i});
我正在开发一个在 ons-list 中显示图像的应用程序(每个图像在一个 ons-list-item 中)每个图像都有不同的高度,所以我不能将项目的高度设置为固定的高度,也不能将 ons-list-i
没有 Angular 可以使用 Onsen 吗? Aurelia 数据可以绑定(bind)到 Onsen 吗? 最佳答案 是的,它可以在没有 Angular 的情况下使用。 您需要利用他们的 CSS,
关闭。这个问题需要debugging details .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve this questio
当我向我的页面添加一个 ons-tabbar 时,它会与我的整个页面重叠,因此除了选项卡本身之外我无法单击任何内容。 我的页面如下所示(每个页面都有自己的 html 文件):
Onsen 中的默认设置是当按下设备返回按钮时应用程序关闭/存在。有没有办法在 Onsen 中控制它来模仿 ons-navigator 操作/页面历史记录? 谢谢! 最佳答案 在 PhoneGap/C
我已经通过 Monaca IDE 创建了一个新项目。该页面有ons.bootstrap(),onsenui版本是v1.3.8 - 2015-07-27。 我尝试添加 angular.module('
然后是循环中的一条语句 $('#myList').append("" + variableItem + ""); 可能还有类似这样的刷新 $('#myList').listview('refresh
我有一个这样的菜单:
而不是像基础示例中那样显示一个以上的项目 项目#1 项目#2 项目#3 我可以在每行两列或三列中排列什么项目,如下所示? 项目#1 项目#2 项目#3 项目#4 项目#5 项目#6 项目#7 项目#8
我是 OnsenUI 的新手。我正在尝试显示一个使用导航器的页面,并且我还想在同一页面上有一个侧边栏。根据文档,这是可能的,但我正在努力让它发挥作用。我目前有这个:
我在应用程序的每个页面上都放置了一个滑动菜单。奇怪的是,在根主页以外的所有页面上,滑动菜单并排打开两次。我似乎无法弄清楚为什么会这样。我已经将 swipable 从 true 设置为 false,这并
我在使用 Onsen UI 和 PhoneGap 处理表单提交时遇到问题。 当我有时和标签,表单不提交。由于我删除了这个 Onsen 原生标签,该表单突然就可以工作了。 HTML
我是一名优秀的程序员,十分优秀!