【发布时间】:2016-11-14 08:42:33
【问题描述】:
在开始之前,我已经查看了许多其他答案:
- $stateProvider not loading pages as expected
- angular $stateProvider not routing as expected
- angular $stateprovider not working as expected
- AngularJS stateProvider not working
我正在使用 Ionic 构建一个应用程序。
我已经从我正在开发的另一个应用程序中创建了该应用程序,但是,$stateProvider 似乎正在开发那个应用程序,而不是这个。唯一的区别是工作的一个被设置为一个离子标签(ionic start myApp tabs)模板,而这个被设置为一个空白模板(ionic start myApp blank)。 index.html 正在按预期加载,但是当我访问 /login 时,HTML 页面没有加载,控制器也没有加载。
routes.js
angular.module('vCAFI.routes', [])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('blocklyEditor', {
url: '/blocklyEditor',
templateUrl: 'templates/blocklyEditor.html',
controller: 'blocklyEditorCtrl'
})
.state('login', {
url: '/login',
templateUrl: 'templates/login.html',
controller: 'loginCtrl'
});
$urlRouterProvider.otherwise('/login')
});
login.html
<ion-view title="Login" hide-nav-bar="true" hide-back-button="true" cache-view="false" nav-transition="none" id="page2">
<ion-content padding="true" class="manual-ios-statusbar-padding" scroll="false">
...
</ion-content>
</ion-view>
没有 ui-view 指令或任何东西,因为 Angular 用它代替了 ion-view。
当我访问时:
localhost:8100/#/登录
...我返回index.html。当我击中时:
localhost:8100/templates/login.html
...它可以找到正确的页面(但没有加载任何 Ionic 内容,因为尚未加载 index.html)
我曾尝试将templateUrl 设置为到login.html 的不同路径,但没有任何效果。
没有ui.router 或ui.state 注入应用程序,因为我被告知Ionic 不需要它。我也用这些依赖项对其进行了测试,但仍然没有看。
最后,调试时日志中没有任何内容,并且 - 放置断点时 - routes.js 被命中,这意味着它被正确加载。
我添加了一个$stateChangeError 处理程序,但仍然没有输出到日志:
.run(function($rootScope) {
$rootScope.$on("$stateChangeError", function(event, toState, toParams, fromState, fromParams, error) {
console.log(error);
});
})
(我之前从未实现过这个处理程序,如果我错了,请纠正我)
任何帮助将不胜感激!
【问题讨论】:
-
添加状态更改错误处理程序并记录它产生的任何错误
-
日志中没有产生任何内容
-
这并不过分信息。是否触发了错误处理程序?如果是,请显示处理程序代码
-
我已经更新了我的问题
-
请注意,链接的答案演示有一个您似乎没有的
<ion-nav-view>