我有一个组件(指令),它应该被其他应用程序(例如,bower组件)用作独立组件。我想在我的指令中添加导航(使用ngRoute
或ui-router
) - 但这可能与主机应用程序导航(如果它使用一个)冲突。
例如:
http://address.com/route-to-my-component
现在,在我的应用程序中,我应该有一个内部路由(我不知道主应用程序路由):
$routeProvider.
when('/route1', {
template: `<comp1></comp1>`
}).
when('/route2', {
template: `<comp2></comp2>`
}).
otherwise({
redirectTo: '/route1'
});
此解决方案存在一些问题:
这个问题有解决方法吗?
由于
修改
我最终得到了两个可选的解决方案:
使用angular-widget,这是一个很好的解决方案,但对我来说太复杂了(对我来说太过分了)
使用history.pushState
。
所以,我实现了第二个选项,如下所示:
当使用时单击导航(在我的组件内),我执行pushState:
history.pushState({someData}, 'some-title', url );
我添加了一个事件,用户按下后退按钮:
window.onpopstate = function(event){ //我的背部逻辑在这里 } .bind(本);
这是一种hackey解决方案,但它完全符合我的情况和需求。