如何找到所有加载的路由?
How to find all loaded routes?
我有一个这样的函数,应该加载一些路由。
.config(function($stateProvider, $urlRouterProvider){
$stateProvider.state('app', {
abstract: true,
templateUrl: "index.html",
})
$stateProvider.state('index', {
url: '/',
views: { "index" : { templateUrl: "index.html" } },
parent: "app",
});
$stateProvider.state('register', {
url: "/register",
views: { "register" : { templateUrl: "templates/register.html", } },
parent: "app",
});
$urlRouterProvider.otherwise("/");
})
但我得到
Error: Could not resolve 'register' from state ''
异常。从我检查的所有其他示例来看,该路由配置看起来不错。但由于某种原因它不起作用。
我怀疑我的路由没有加载,我把 console.log
、debugger
和 alert
函数放在我的 .config
函数中,但是 none被执行。
有什么方法可以列出从 ui-router 加载的所有路由吗?
Disclaimer: I would like to give you a hint. If this answer would not suite, let me know, will delete that. Because obviously, my previous answser is not working for you:
像这样的错误消息的来源可能是什么?
Could not resolve 'register' from state ''
只有两个选项。
- 未加载具有状态定义的文件。 (可以用一些
console.log
的东西来检查)
- 文件表示
module
已正确加载,但未被根引用 ng-app="myApp"
我强烈希望,第二种情况是问题所在。这是一个 BROKEN example,它将(在单击按钮后)显示错误:Could not resolve 'register' from state ''
发生了什么。有一个名为"otherStates.js"的文件被加载到index.html
...
// 查看上面加载的脚本
// 下面是根模块名称 "myApp"
...
"otherStates.js" 声明模块 "myStates",其中包含所有状态:
// will always be in a console
// because file is loaded
console.log("file is accessed");
angular
.module('myStates', ['ionic'])
.config(function($stateProvider, $urlRouterProvider){
// never reach console, because this module is not used
console.log("module myStates is not referenced in myApp ");
console.log("these lines will never be trigerred");
$stateProvider
.state('app', {
abstract: true,
...
})
....
所以为什么我们确实会遇到那个错误?如何解决?
简单地说,在script.js
、(我们的根模块在哪里)我们有这样的声明:
var app = angular.module('myApp', ['ionic'])
这还不够。我们还需要引用 myStates
。所以我们必须像这样改变它,一切都会起作用
var app = angular.module('myApp', ['ionic', 'myStates'])
勾选这个broken example
我有一个这样的函数,应该加载一些路由。
.config(function($stateProvider, $urlRouterProvider){
$stateProvider.state('app', {
abstract: true,
templateUrl: "index.html",
})
$stateProvider.state('index', {
url: '/',
views: { "index" : { templateUrl: "index.html" } },
parent: "app",
});
$stateProvider.state('register', {
url: "/register",
views: { "register" : { templateUrl: "templates/register.html", } },
parent: "app",
});
$urlRouterProvider.otherwise("/");
})
但我得到
Error: Could not resolve 'register' from state ''
异常。从我检查的所有其他示例来看,该路由配置看起来不错。但由于某种原因它不起作用。
我怀疑我的路由没有加载,我把 console.log
、debugger
和 alert
函数放在我的 .config
函数中,但是 none被执行。
有什么方法可以列出从 ui-router 加载的所有路由吗?
Disclaimer: I would like to give you a hint. If this answer would not suite, let me know, will delete that. Because obviously, my previous answser is not working for you:
像这样的错误消息的来源可能是什么?
Could not resolve 'register' from state ''
只有两个选项。
- 未加载具有状态定义的文件。 (可以用一些
console.log
的东西来检查) - 文件表示
module
已正确加载,但未被根引用ng-app="myApp"
我强烈希望,第二种情况是问题所在。这是一个 BROKEN example,它将(在单击按钮后)显示错误:Could not resolve 'register' from state ''
发生了什么。有一个名为"otherStates.js"的文件被加载到index.html
... // 查看上面加载的脚本 // 下面是根模块名称 "myApp" ...
"otherStates.js" 声明模块 "myStates",其中包含所有状态:
// will always be in a console
// because file is loaded
console.log("file is accessed");
angular
.module('myStates', ['ionic'])
.config(function($stateProvider, $urlRouterProvider){
// never reach console, because this module is not used
console.log("module myStates is not referenced in myApp ");
console.log("these lines will never be trigerred");
$stateProvider
.state('app', {
abstract: true,
...
})
....
所以为什么我们确实会遇到那个错误?如何解决?
简单地说,在script.js
、(我们的根模块在哪里)我们有这样的声明:
var app = angular.module('myApp', ['ionic'])
这还不够。我们还需要引用 myStates
。所以我们必须像这样改变它,一切都会起作用
var app = angular.module('myApp', ['ionic', 'myStates'])
勾选这个broken example