AngularJS - 在指令/组件内导航

时间:2016-01-06 10:13:28

标签: javascript angularjs angular-ui-router ngroute angularjs-ng-route

我有一个组件(指令),它应该被其他应用程序(例如,bower组件)用作独立组件。我想在我的指令中添加导航(使用ngRouteui-router) - 但这可能与主机应用程序导航(如果它使用一个)冲突。

例如:

  • 主应用程序有我的组件的路由:

http://address.com/route-to-my-component

现在,在我的应用程序中,我应该有一个内部路由(我不知道主应用程序路由):

$routeProvider.
      when('/route1', {
        template: `<comp1></comp1>`
      }).
      when('/route2', {
        template: `<comp2></comp2>`
      }).
      otherwise({
        redirectTo: '/route1'
      });

此解决方案存在一些问题:

  1. 主应用程序可能无法识别我的路由,因此它将落入其默认路由。
  2. 我不知道我的父路由器解决方案是什么,这使我很难配置自己的路由。
  3. 这个问题有解决方法吗?

    由于

    修改

    我最终得到了两个可选的解决方案:

    1. 使用angular-widget,这是一个很好的解决方案,但对我来说太复杂了(对我来说太过分了)

    2. 使用history.pushState

    3. 所以,我实现了第二个选项,如下所示:

      • 当使用时单击导航(在我的组件内),我执行pushState:

        history.pushState({someData}, 'some-title', url );

      • 我添加了一个事件,用户按下后退按钮:

        window.onpopstate = function(event){     //我的背部逻辑在这里  } .bind(本);

      这是一种hackey解决方案,但它完全符合我的情况和需求。

0 个答案:

没有答案