Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $state.go在离子导航视图下不工作_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

Javascript $state.go在离子导航视图下不工作

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.

我已经开始了一个离子标签项目。现在我有了一个按钮“initiateProcess”,我用
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'
        }
    }
})