在Ionic 1中,我们可以在 <ion-nav-view>
之上定义 <ion-nav-bar>
,它可以作为整个应用程序的通用导航栏,我们可以在每个视图的基础上关闭它(使用 ionNavView
的 hideNavBar=true|false
.
它出现在Ionic 2中,我们必须每页插入 <ion-nav-bar>
- 并且不能为整个应用程序提供全局导航栏 . 这是正确的,还是我错过了一招?
如果是这样 - 似乎有很多重复的代码?
此外,看起来你没有能力让NavBar Build 自己的后退按钮,你必须自己为后退按钮编写自己的标记(每页),这似乎是很多代码重复 .
3 回答
UPDATE :
就像@mhartington说:
关于创建自定义指令以避免重复
ion-navbar
html代码:NOT recommended solution:
为了避免重复这么多代码,您可以为导航栏创建自己的自定义组件 .
使用以下代码创建
navbar.html
:然后在
navbar.ts
:通过将
hideCreateButton
声明为Component
的input
,您可以决定哪些页面显示该按钮以及哪些页面不应显示 . 因此,通过这种方式,您可以发送信息以告知组件应该如何,并为每个页面自定义它 .因此,如果您想在页面中添加导航栏(不修改默认模板,因此显示创建按钮),您只需添加
navbar
元素(由我们在selector
属性中绑定到我们的自定义组件):如果你想隐藏创建按钮(或者像你想要的那样修改导航栏),你的页面将如下所示:
请记住
hideButton()
应该在_1028700中定义,如下所示:对于离子3
我所做的就是使用自定义组件 .
将相关的导航栏html添加到组件模板中
将任何其他功能添加到组件.ts文件中
将选择器修改为相关的内容(如果上面使用的命令,则应默认为'navbar' .
还要将组件添加到app.module.ts声明中
然后在任何页面模板中,只需将其用作自定义元素,例如
我发现这是不可能的 . 实现此目的的唯一方法是提供
<ion-navbar>
并自动处理后退按钮 .例如 . :