Ionic:$ state.go()更改URL但不更改视图

时间:2016-11-30 13:42:12

标签: javascript ionic-framework

我对离子和javascript都很陌生,在我的项目中更改视图时遇到了一些问题。

我已经使用标签启动器创建了项目,并且在使用默认标签移动时甚至在添加新标签时一切正常。在代码的某些部分,我需要移动到选项卡视图,所以我使用$ state.go()函数,它工作正常。但是,我添加了一个带有模板,控制器和状态的新视图,我需要在单击按钮时加载它。所以我再次使用$ state.go(),但是资源管理器中的URL会更改但不会更改视图,它会保留在上一个中。当我在浏览器中输入URL时,它不起作用,所以问题可能在状态定义中,但我很确定它没问题。

国家

.state('tab.file_explorer', {
    url: '/file_explorer',
    views: {
      'tab-file_explorer': {
        templateUrl: 'templates/tab-file_explorer.html',
        controller: 'file_explorerCtrl'
      }
    }
  })

控制器
它位于按钮所在的其他视图的控制器中(按钮工作正常,我已对其进行了测试)。 file_explorerCtrl控制器此时为空。

.controller('load_csvCtrl', function($scope, $state) {
    $scope.loadCsv = function(){
       $state.go('tab.file_explorer');
    }
}

此重定向到URL http://localhost:8100/#/tab/file_explorer,没有控制台输出或404错误。我也尝试过使用$ location.path()和$ window.location.assign(),但它也无法加载模板。

我很感激任何帮助。

3 个答案:

答案 0 :(得分:0)

您可以查看index.html是否有<ion-nav-view></ion-nav-view>代码

答案 1 :(得分:0)

您正在使用命名视图。您的<ion-nav-view>应与名称匹配:

<ion-nav-view name="tab-file_explorer"></ion-nav-view>

查看此处的文档:

https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views

答案 2 :(得分:0)

在视图中设置cache-view="false"

示例:

<ion-view cache-view="false">
<!-- View Content goes here -->
</ion-view>
相关问题