我的页面包含3个标签,如果我从tab3转发到下一页,然后使用$ ionicHistory.goBack()从该页面返回,它会重定向到tab1。如何让它重定向到tab3本身
var c1 = document.getElementsByClassName('class1')[0].childNodes;
var allC1Text = Array.from(c1.values())
.filter(v => v.nodeName === '#text')
.map(t => t.textContent)
.join('')
.trim();
var c2 = document.getElementsByClassName('class2')[0].childNodes;
var allC2Text = Array.from(c2.values())
.filter(v => v.nodeName === '#text')
.map(t => t.textContent)
.join('')
.trim();
console.log('Class1 Text:', allC1Text);
console.log('Class2 Text:', allC2Text);
答案 0 :(得分:0)
我不确定是否可以通过$ state来做到这一点。我在12月(2016年)第一次回顾时自己是Ionic的新手。但是,我碰巧有这个确切的情况。这就是我解决它的方法。
就我而言,我没有使用标签。相反,根据“标签号”,我有三个不同的DIV可见。初始化视图时,我将其设置为“1”并使用该属性来控制执行的代码。
我猜你正在使用的控件有一个属性来识别和设置你需要的特定标签,因为这是更改标签点击标签的最可能方式。考虑将该属性“tab#”的值放入控制器使用的适当服务中。这是我通过Factory定义的一项服务中的实际代码的精简版本。
YourService.js:
// controllers are instances. When navigating away, state is lost. This
// tracks the tab we wish to view when we load the home page.
var activeHomePageTab = 1;
var service = {
getActiveTab: getActiveTab,
setActiveTab: setActiveTab,
...
};
return service;
////////////////
function getActiveTab() { return activeHomePageTab; }
function setActiveTab(num) { activeHomePageTab = num; }
...
这里,功能是私人的。在控制器中,设置选项卡时,还要设置此属性。作为单例,只要您的应用程序正在运行,这将保持有效。
接下来,在init()例程中,当加载控制器时,检查此属性并设置选项卡是否已定义:
function init() {
var tab = YourService.getActiveTab();
if (tab !== undefined) {
setTab(tab);
} else {
setTab(1)
}
...
}
当然,还有其他方法 - 可能在Constant对象上使用Value或属性。