假设一个名为 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);
});

10-06 07:38