Javascript $state.go在离子导航视图下不工作
我已经开始了一个离子标签项目。现在我有了一个按钮“initiateProcess”,我用Javascript $state.go在离子导航视图下不工作,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我已经开始了一个离子标签项目。现在我有了一个按钮“initiateProcess”,我用ng单击调用它,在控制器中它执行一些操作,然后用state.go或state.Transition进入某个状态(tab.target)完成它 但是,如果我没有在我的tabs.html中包含该状态,则不会加载该状态。当我包含它时,state.go就可以了。此状态是独立的(可以看作是子状态,但不是其本身),我不希望它显示在我的选项卡中 发生了什么事 tabs.html(不带tab.target) 选项卡dash.
ng单击调用它,在控制器中它执行一些操作,然后用state.go
或state.Transition进入某个状态(tab.target
)完成它
但是,如果我没有在我的tabs.html中包含该状态,则不会加载该状态。当我包含它时,state.go就可以了。此状态是独立的(可以看作是子状态,但不是其本身),我不希望它显示在我的选项卡中
发生了什么事
tabs.html(不带tab.target
)
选项卡dash.html中的按钮
<button class="button button-balanced" ng-click="initiateProcess()">
Go to Target
</button>
走向目标
通过禁用$urlRouterProvider.OVERSIES()检查您的路由器是否真正工作。因为它会自动将您路由回tab.dash,这似乎是路由器出错了
如果您的url确实更改为tabs/target/,这意味着您的路由器确实工作正常。试试这个
<ion-tab title="Status" icon-off="ion-ios7-pulse" icon-on="ion-ios7-pulse-strong" href="#/tab/target">
<ion-nav-view name="tab-target"></ion-nav-view>
</ion-tab>
.state('tab.target', {
url: '/target',
'tab-target': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
})
.state('tab.target'{
url:“/target”,
“制表符目标”:{
templateUrl:'templates/tab target.html',
控制器:“TargetCtrl”
}
})
ion导航视图类似于ios中的UIViewController。它是供您查看的容器。如果决定命名它,则必须与$stateProvider中的视图名称匹配。基本上,ionic不知道要在哪里显示选项卡。target,因为没有匹配的容器我遇到了类似的问题,我试图转到一个没有选项卡的视图,就像您一样
解决方案很简单:
定义目标状态时,没有选项卡的状态:
.state('tab.target', {
url: '/target',
views: {
'tab-target': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
}
})
只需将“视图”的值设置为另一个具有选项卡的状态,例如:
.state('tab.target', {
url: '/target',
views: {
'tab-dash': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
}
})
然后,当用户浏览到目标选项卡时,在选项卡栏中,“破折号”选项卡将显示为实际选项卡。您可以检查控制台,看看它是否抛出任何错误或警告吗?没有错误或警告……检查您的错误。通常有一个列表列出您的文件名及其错误。您可以忽略以下默认错误:()。我看不到任何错误。问题是,只要我在我的tabs.html中包含ion nav view name=“tab.target”,它就可以工作。好吧,ionic需要名称中的选项卡。它与app.js中的视图名称匹配。让我输入正确的格式如何从控制器重定向到state tab.target?尝试检查路由器是否真的工作。禁用$urlRouterProvider(通过注释),然后在单击时检查url。您的url是否更改为“/选项卡/目标”?如果是,那么问题在于导航视图
<ion-tab title="Status" icon-off="ion-ios7-pulse" icon-on="ion-ios7-pulse-strong" href="#/tab/target">
<ion-nav-view name="tab-target"></ion-nav-view>
</ion-tab>
.state('tab.target', {
url: '/target',
'tab-target': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
})
.state('tab.target', {
url: '/target',
views: {
'tab-target': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
}
})
.state('tab.target', {
url: '/target',
views: {
'tab-dash': {
templateUrl: 'templates/tab-target.html',
controller: 'TargetCtrl'
}
}
})