我在AngularJS中太新了,我有以下问题:
我怎么能知道一个州到另一个州的路径?
我想知道如何显示所有状态,特别是它通过一个状态。
例如:我有以下状态:Home,login和menuContent。如果这从menuContent开始然后继续登录并在家结束,我想看到整个路线或者至少在家庭状态之前看到的是最后一个
.state('home', {
url: "/home",
cache: false,
views: {
'menuContent': {
templateUrl: "app/pages/dashboard.html",
controller: 'dashboardCtrl'
},
},
})
.state('login', {
url: "/login",
cache: false,
views: {
'menuContent': {
templateUrl: "app/modules/login/authentication.html",
controller: 'AuthenticationCtrl'
},
},
})
.state('menuContext', {
url: "/menuContext",
cache: false,
views: {
'menuContent': {
templateUrl: "app/modules/login/menuContext.html",
controller: 'menuContextCtrl'
},
},
})
我希望这一点能被理解并为我的英语道歉
非常感谢,
问候,CMol
答案 0 :(得分:1)
我可以在这里看到两个数据处理选项:创建服务或将数据粘贴到$rootScope
对象。
有趣的部分是如何在服务/对象中获取/存储数据:
$stateChangeStart
事件上推送数据(如Ivan所述)并在需要时返回某种聚合路径onEnter
属性来推送状态数据,如下所示:。
$stateProvider.state('state1.substate1', {
url: "/substate1",
templateUrl: "templates/substate1.html",
controller: 'substate1Ctrl',
onEnter: function(){
$rootScope.path += '/substate1';
}
});
请在此处查看docs on $stateProvider(onEnter列为$ state的函数)。
答案 1 :(得分:0)
我的建议是听取$stateChangeStart
事件,在处理程序中你将拥有fromState参数,这样你就可以跟踪那些先前的状态并做任何你想做的事情。您也可以提供一些服务并将这些先前的状态传递给它们,它将为您构建/存储完整路径。
查看docs。
答案 2 :(得分:0)
您可以使用所有规则创建对象列表。然后,您可以注册一个循环。然后,您可以访问此对象以生成列表。
示例代码:
var rules = {
'home': { url: "/home", cache: false, ... },
'login': { url: "/login", cache: false, ... }
}
angular.forEach(rules, function(value, key) {
$routeProvider.state(key, value);
});