我对离子和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(),但它也无法加载模板。
我很感激任何帮助。
答案 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>