转到视图并使用ui-router触发$ scope函数

时间:2018-05-27 21:32:50

标签: angularjs angular-ui-router

我意识到这个问题是针对黑客的,但这是动机:

  • 我正在设计一个"捷径"查看我相当复杂的应用程序。用户希望在不同视图中触发功能。
  • 不同的用户对有用的快捷方式有不同的看法
  • 例如,一位用户可能希望定义一个快捷方式,即“app.montage”并触发$scope.toggleInfo()"
  • 另一个用户可能想要定义一个完全不同的快捷方式,在现有视图的UI内部调用3级功能

所以底线,我可以设计如下: $state.go('state name')&&然后在该状态内启动功能?

我知道我可以定义URL路由,但它是一个相当复杂的应用程序,它更容易能够触发"我可以采取行动。

1 个答案:

答案 0 :(得分:1)

$stateProvider.state('users', {
    url: '/users',
    controller: 'UsersCtrl',
    params: {
        obj: null
    }
})
function UserCtrl($stateParams,$scope) {
    console.log($stateParams);
    $stateParams.obj && $stateParams.obj.toggleInfo && $scope.toggleInfo();
}
$state.go('users', {obj:{toggleInfo: true});

有关详细信息,请参阅UI-Router Wiki - Using Parameters without Specifying Them in State URLs