使用 Angular UI-Router 在 Ionic Framework 中将状态处理为新路由



我正在使用Ionic Framework及其AngularJS UI-Router和$stateProvider来处理我的应用程序中的不同视图。

但是,我很难弄清楚如何告诉$stateProvider我得到了不同的"主视图",每个视图都有不同的子视图。

例如,当我在/#/home上并单击将我发送到/#/about的链接时,/#/about不会呈现为它自己的新视图。相反,它过渡到它,因为它是/#/home的子页面。

当我用 AngularJS $routeProvider替换$stateProvider时,它的工作方式就像它应该的那样,但随后所有的过渡都消失了。

我创建了一支笔供您查看。

http://codepen.io/anon/pen/gBDFi

它们之间不应该有过渡。每个"基本"网址都应该是一个新的"标签"。

不知道这是否仍然相关,因为它是在二月份发布的,我绝不是 ng-pro,但这是我的尝试 JSBinLink

我做了两件主要的事情,将内容包装在离子选项卡中,并将其作为抽象状态添加到stateProvider中。

使用此结构,您有两个独立的选项卡"主页","关于" - 注意,没有后退按钮。 但是,如果您在"关于"中导航到"汤姆" - 您将获得一个后退按钮。

还有其他方法可以实现类似的东西,一种是创建子状态等。

我建议查看UI路由器文档。 它大多写得很好,内容也很丰富 - 还有一个汤姆·金德伯格(Tom Kindberg)的创作视频,在这里解释了它的主要概念。

希望这有帮助。

$StateRouteProvider 和 $UrlRouteProvider 之间的区别 ..

$UrlRouteProvider.否则(网址); -->路由到给定的网址。

$StateRouteProvider.否则(状态); -->路由到给定状态。

因此,如果您使用的是ui-router,那么在需要更改视图的地方使用$state.go()。在 $location.path(URL) 的情况下,在从独立状态过渡到当前状态的情况下将起作用。如果您希望通过同一父级下的州进行路由,则必须使用$state路由。

最新更新