<ion-navbar> 中的“*navbar”是什么意思?
What is the meaning of " *navbar " in <ion-navbar>?
每当我学习 ionic 的教程时,我都会看到短语 *navbar
。
这是什么意思?我知道 * 表示它在模板中插入标签,但无法真正理解这个表达式..
<ion-navbar secondary *navbar>
<ion-title>
<ion-searchbar primary placeholder="enter subreddit name..."></ion-searchbar>
</ion-title>
<ion-buttons end>
<button (click)="openSettings()"><ion-icon name="settings"></ion-icon></button>
</ion-buttons>
</ion-navbar>
就像你说的那样(就像你能读懂here)
星号表示该指令将此组件视为模板,不会绘制它as-is。例如,ngFor 获取我们的并为项目中的每个项目将其标记出来,但它从不呈现我们的首字母,因为它是一个模板:
<my-component *ngFor="#item of items">
</my-component>
因此,据我所知,*navbar
告诉导航栏组件 ion-navbar 标记应由模板替换,而不是在其中呈现。这就是为什么你的代码:
<ion-navbar secondary *navbar>
<ion-title>
<ion-searchbar primary placeholder="enter subreddit name..."></ion-searchbar>
</ion-title>
<ion-buttons end>
<button (click)="openSettings()"><ion-icon name="settings"></ion-icon></button>
</ion-buttons>
</ion-navbar>
然后渲染成这样:
<ion-navbar class="toolbar show-navbar" secondary="">
<div class="toolbar-background"></div>
<button category="bar-button" class="back-button bar-button bar-button-default"><span class="button-inner"><span class="button-inner"><ion-icon class="back-button-icon ion-md-arrow-back" role="img" aria-label="arrow back"></ion-icon><span class="back-button-text"><span class="back-default"></span></span>
</span>
<ion-button-effect></ion-button-effect>
</span>
<ion-button-effect></ion-button-effect>
</button>
<ion-buttons end="">
<button class="bar-button bar-button-default bar-button-icon-only"><span class="button-inner"><ion-icon name="settings" role="img" class="ion-md-settings" aria-label="settings"></ion-icon></span>
<ion-button-effect></ion-button-effect>
</button>
</ion-buttons>
<div class="toolbar-content">
<ion-title>
<div class="toolbar-title">
<ion-searchbar placeholder="enter subreddit name..." primary="" class="">
<div class="searchbar-input-container">
<button class="searchbar-md-cancel button button-clear button-icon-only button-clear-dark" clear="" dark=""><span class="button-inner"><ion-icon name="arrow-back" role="img" class="ion-md-arrow-back" aria-label="arrow back"></ion-icon></span>
<ion-button-effect></ion-button-effect>
</button>
<div class="searchbar-search-icon"></div>
<input autocapitalize="off" autocomplete="off" autocorrect="off" class="searchbar-input" spellcheck="false" type="search" placeholder="enter subreddit name...">
<button class="searchbar-clear-icon button button-clear" clear=""><span class="button-inner"></span>
<ion-button-effect></ion-button-effect>
</button>
</div>
<button class="searchbar-ios-cancel button button-clear activated" clear=""><span class="button-inner">Cancel</span>
<ion-button-effect style="left: -9999px; transform: scale(0.001) translateZ(0px);"></ion-button-effect>
</button>
</ion-searchbar>
</div>
</ion-title>
</div>
</ion-navbar>
不要太关注代码,我只是想告诉你,你的代码看起来很简单,但是如何渲染成如此复杂的代码块。
所以,我的理解方式,你只是对 Ionic 说你想使用 navbar
模板(通过使用 *navbar
), 并发送关于标题、按钮和它们应该有什么内容以及这些东西应该放在哪里的信息(具有 end
之类的属性)。然后 Ionic 将处理使用该信息来填写模板并呈现 HTML 代码。
每当我学习 ionic 的教程时,我都会看到短语 *navbar
。
这是什么意思?我知道 * 表示它在模板中插入标签,但无法真正理解这个表达式..
<ion-navbar secondary *navbar>
<ion-title>
<ion-searchbar primary placeholder="enter subreddit name..."></ion-searchbar>
</ion-title>
<ion-buttons end>
<button (click)="openSettings()"><ion-icon name="settings"></ion-icon></button>
</ion-buttons>
</ion-navbar>
就像你说的那样(就像你能读懂here)
星号表示该指令将此组件视为模板,不会绘制它as-is。例如,ngFor 获取我们的并为项目中的每个项目将其标记出来,但它从不呈现我们的首字母,因为它是一个模板:
<my-component *ngFor="#item of items">
</my-component>
因此,据我所知,*navbar
告诉导航栏组件 ion-navbar 标记应由模板替换,而不是在其中呈现。这就是为什么你的代码:
<ion-navbar secondary *navbar>
<ion-title>
<ion-searchbar primary placeholder="enter subreddit name..."></ion-searchbar>
</ion-title>
<ion-buttons end>
<button (click)="openSettings()"><ion-icon name="settings"></ion-icon></button>
</ion-buttons>
</ion-navbar>
然后渲染成这样:
<ion-navbar class="toolbar show-navbar" secondary="">
<div class="toolbar-background"></div>
<button category="bar-button" class="back-button bar-button bar-button-default"><span class="button-inner"><span class="button-inner"><ion-icon class="back-button-icon ion-md-arrow-back" role="img" aria-label="arrow back"></ion-icon><span class="back-button-text"><span class="back-default"></span></span>
</span>
<ion-button-effect></ion-button-effect>
</span>
<ion-button-effect></ion-button-effect>
</button>
<ion-buttons end="">
<button class="bar-button bar-button-default bar-button-icon-only"><span class="button-inner"><ion-icon name="settings" role="img" class="ion-md-settings" aria-label="settings"></ion-icon></span>
<ion-button-effect></ion-button-effect>
</button>
</ion-buttons>
<div class="toolbar-content">
<ion-title>
<div class="toolbar-title">
<ion-searchbar placeholder="enter subreddit name..." primary="" class="">
<div class="searchbar-input-container">
<button class="searchbar-md-cancel button button-clear button-icon-only button-clear-dark" clear="" dark=""><span class="button-inner"><ion-icon name="arrow-back" role="img" class="ion-md-arrow-back" aria-label="arrow back"></ion-icon></span>
<ion-button-effect></ion-button-effect>
</button>
<div class="searchbar-search-icon"></div>
<input autocapitalize="off" autocomplete="off" autocorrect="off" class="searchbar-input" spellcheck="false" type="search" placeholder="enter subreddit name...">
<button class="searchbar-clear-icon button button-clear" clear=""><span class="button-inner"></span>
<ion-button-effect></ion-button-effect>
</button>
</div>
<button class="searchbar-ios-cancel button button-clear activated" clear=""><span class="button-inner">Cancel</span>
<ion-button-effect style="left: -9999px; transform: scale(0.001) translateZ(0px);"></ion-button-effect>
</button>
</ion-searchbar>
</div>
</ion-title>
</div>
</ion-navbar>
不要太关注代码,我只是想告诉你,你的代码看起来很简单,但是如何渲染成如此复杂的代码块。
所以,我的理解方式,你只是对 Ionic 说你想使用 navbar
模板(通过使用 *navbar
), 并发送关于标题、按钮和它们应该有什么内容以及这些东西应该放在哪里的信息(具有 end
之类的属性)。然后 Ionic 将处理使用该信息来填写模板并呈现 HTML 代码。