假设一个名为 projects.new 的状态,其中新是项目的嵌套状态。
有没有办法隐藏父模板以仅显示子模板?
最佳答案
您可以检查状态(路线)何时更改并隐藏父 View 。 Demo in jsfiddle。这个工作示例使用AngularUI Router,但逻辑与标准ngRoute几乎相同。
var parents = ['parent'];
$rootScope.$on('$stateChangeSuccess', function(event, toState) {
$scope.hideParent = parents.indexOf(toState.name) !== -1 ? false : true;
});
或者我们可以检查状态名称是否包含父状态名称。一个简单的正则表达式模式可以告诉我们,状态名称使用点表示法来分隔
parent.child
。var re = /^projects.\w+/;
$rootScope.$on('$stateChangeSuccess', function(event, toState) {
$scope.hideParent = re.test(toState.name);
});