包括 ionic 2/Angular 2 的通用标题栏

2024-02-06

我有一个 ionic-2 标题栏,其中包含主页或注销按钮和公司标志这对于所有页面都是通用的。我如何编写一个通用函数(@Injectable()),这样就可以很容易地包含在所有页面中,而不是重复代码。

<ion-header>
  <ion-navbar class="hide-border toolbar-btn-color" id="radio">
    <button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-title>Send Money</ion-title>
    <ion-buttons end>
      <button (click)="goHome()">
        <ion-icon ios="ios-home" md="md-home"></ion-icon>
      </button>
    </ion-buttons>
  </ion-navbar>
</ion-header>

在每个打字稿文件中,我都重复调用 gohome() 的函数。有什么办法可以避免这种情况吗?


您可以通过使用配置来创建标头组件,然后相应地更改不同组件上的配置来实现此目的。 创建自定义标头组件。
让我们称之为'自定义标头组件'

自定义标头组件.html

<ion-navbar>
  <button *ngIf="header_data.ismenu" ion-button icon-only menuToggle>
    <ion-icon name="menu"></ion-icon>
  </button>
  <button *ngIf="header_data.ishome" class="algo-header-home-icon" ion-button icon-only (click)="homeClick()">
    <ion-icon class="ion-home" name="home"></ion-icon>
  </button>
  <ion-title class="header-title" [ngClass]="{'ishome-title': header_data.ishome,'ismeun-centre': !header_data.ishome}">
    {{header_data.title}}
  </ion-title>
</ion-navbar>



自定义标头组件.ts

import { Component,Input } from '@angular/core';
import { NavController } from 'ionic-angular';
import { HomePage } from '../../pages/home/home';

@Component({
  selector: 'custom-header',
  templateUrl: 'custom-header.html'
})
export class CustomHeaderComponent {
  header_data: any;
  constructor(public navCtrl: NavController) {}
  @Input()
  set header(header_data: any) {
    this.header_data=header_data;
  }
  get header() {
    return this.header_data;
  }
  homeClick() {
    this.navCtrl.setRoot(HomePage);
  }
}



这个自定义标头组件采用配置'ismenu' 布尔类型, 'ishome' 布尔类型和 'title' 字符串类型。现在让我们在页面组件中使用这个组件'home'。我们希望主页组件只有标题和菜单。我们的代码看起来像这样。

'home.html'

<ion-header><custom-header [header]="header_data"></custom-header></ion-header>
 <ion-content padding class="page-home">
   <p>Home Page</p>
 </ion-content>



'home.ts'

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  header_data:any;
  constructor(public navCtrl: NavController) {
    this.header_data={ismenu:true,ishome:false,title:"Home"};
  }
}
<br/><br/>

主页标题看起来像这样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包括 ionic 2/Angular 2 的通用标题栏 的相关文章

  • 复选框警报控制器 - 添加 3 个按钮

    我用 IONIC 2 Beta 版本制作了一个应用程序 我正在使用复选框警报控制器 并添加两个按钮 确定 和 取消 现在我需要在警报控制器中再添加一个按钮 我在下面实现了添加一个按钮 alert addButton Cancel alert
  • Angular 6 http.delete 请求不起作用

    我似乎无法让我的删除请求发挥作用 我已经完成了所有的获取请求 但现在我被困在删除上 似乎无法理解它 console log 的 URL 始终正确 并且删除请求通过 Postman 工作正常 有什么想法吗 HTML
  • 循环遍历字符串数组 - angular2

    然而非常基本的事情 但我无法弄清楚如何在 angular2 中的 html 模板中显示字符串数组 html ul li number li ul ts this numberOptions I II III IV V VI VII VIII
  • 如何使用 TypeScript 和 Angular 2 将插件添加到 ng2-ckeditor ?

    我正在尝试添加Justify插件到我的 ckeditor 但不幸的是我找不到任何关于如何将插件添加到 ng2 ckeditor 的信息 另外 我找不到任何应该添加插件的目录或配置文件 我正在使用 ng2 ckeditor1 0 6使用 Ty
  • 无法从角度路由器获取路径或 url

    我无法从 ActivatedRoute 或 Router 导入中获取 URL 或路径 它为路径 输出空白 为 URL 输出 我记得使用的是工作版本 唯一捕获正确路由的是Router events 我也无法订阅ActivatedRoute 中
  • 如何使用EventManager监听Angular中的window.resize事件?

    我从这个 stackoverflow 借用了一些代码 角度窗口调整大小事件 https stackoverflow com questions 35527456 angular window resize event答案的作者说我应该使用事
  • ionic2 对菜单项应用 ngx-translate

    我正在使用 ngx translate 来支持多语言 并且运行良好 但我也想申请菜单项 我该如何实现这一目标 我有 3 个菜单项 我想更改每个标题的语言 ts file appPages PageObj title Profile comp
  • 更改 ag-grid 上的页面和缓存块大小会导致项目无限加载

    我希望使用 ag grid 的 服务器端 模式重新获取每个页面的数据 为了做到这一点 我将 maxBlocksInCache 1 和 cacheBlockSize 设置为等于每页的项目数 到这里为止一切正常 现在 当我更改每页的项目数时 网
  • angular2-google-maps 自动完成功能不起作用

    我正在尝试使用 angular2 google maps 将自动完成功能添加到我的项目中 我在 AppModule 中添加 AgmCoreModule forRoot 带有库 places 然后在组件中添加自动完成代码 我仍然收到 无法读取
  • Angular 2 Component - 访问 DOM(或创建没有模板的组件,纯粹来自 JS)

    尝试在这里使用 Angular 2 了解它仍处于 alpha 阶段 如何从组件访问 DOM 元素 具体来说 我想使用其他库 例如d3 http d3js org 从代码生成自定义 DOM 我想我需要创建一个组件并以某种方式插入组件生命周期以
  • 从父组件调用的子组件内的 Angular 2 ng2-bootstrap 模式

    很难解释这一点 我有一个简单的 ng2 bootstrap 模式示例 我将其扩展为包含主页的 Boostrap 4 Jumbotron 示例模板 现在 ng2 bootstrap 模式不执行任何操作 我可以看到this childModal
  • 如何在每个组件完成加载后在 Angular 2 中运行 jquery 函数

    我已经尝试了所有生命周期挂钩 但无法实现所需的结果 我需要的结果是触发一个函数 该函数在加载每个元素 组件 后初始化用于单个页面上不同元素的许多 jquery 插件 假设你有这个结构 主页 滑块 小部件 产品旋转器 ETC 这些元素中的每一
  • 导航嵌套组件时创建面包屑 (Angular 2)

    我正在为此苦苦挣扎 这个想法是有一个组件 当浏览子视图时更新面包屑 例如
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • 如何使用降级 Module() 引导应用程序与 ui-router 混合

    我正在使用 ui router 混合 https github com ui router angular hybrid https github com ui router angular hybrid 引导 经典 方式 我们在数据网格中
  • D3、TS 和 Angular 2

    我正在尝试将 D3 v4 与 Angular 2 Typescript 一起使用 我目前正在研究 D3 v4 我能够遵循 stackoverflow 中类似问题的一些答案 但没有成功 我已经导入了大部分 D3 库及其类型 我使用的是 TS
  • Angular4 屏蔽输入中的字符而不更改其值

    如何屏蔽输入中除 Angular 4 中最后四个字符之外的所有字符 即显示 而不更改实际值 例如 输入文本框中的数字应类似于 1234 且值应为 7671234 使用指令 Directive selector stringHide expo
  • 是否可以在 Angular Material Tooltip 中包含一个列表?

    基本上我想在我的工具提示中有一个 ul 元素 我正在使用 Angular 5 以及 Angular 5 的兼容材质 帕维尔 阿加科夫 Pavel Agarkov 的评论方向是正确的 为了让事情变得简单 创建一个自定义管道来自动将文本转换为项
  • 订阅内循环订阅?

    我目前正在与订阅内的 multiples forEach 订阅作斗争 我正在尝试检索对象列表 然后通过它们的 ID 检索它们的图像 目前我已经这样做了 this appTypeService get pipe map apps AppTyp
  • Angular 模板验证表单

    我正在研究表单验证 我正在使用模板驱动的验证表单 其编码如下 现在工作正常 但是当我尝试添加时 username ngModel and password ngModel 在创建验证类的输入中 它向我显示一个错误 也请找到该错误 div c

随机推荐

  • RabbitMQ 中的主题交换与直接交换

    我们有一个将使用 RabbitMQ 的应用程序 并且有几个不同的队列用于在层之间传递消息 最初 我计划使用多个直接交换 每种消息类型一个 但看起来使用不同路由键绑定的队列的单个主题交换将实现相同的效果 拥有一个单一的交换似乎也更容易维护 但
  • F# 和 Clojure 调用重新定义函数时的差异

    In F gt let f x x 2 val f int gt int gt let g x f x val g int gt int gt g 10 val it int 12 gt let f x x 3 val f int gt i
  • DwmGetWindowAttribute 使用 PInvoke 返回 0

    我试图通过捕获特定窗口来进行屏幕捕获 并且为了准确地计算出要捕获的窗口的大小 我想使用 DwmGetWindowAttribute 当我在 Windows 10 上使用 PInvoke 调用此函数时Rect即使结果值为 0 成功 结构也始终
  • 简单注入器:如何注入HttpContext?

    我已经开始使用 Simple Injector 作为我的 DI 容器 主要是出于性能原因 如果有人有建议 请告诉我 但我编写的一些类使用 HttpContextBase 作为构造函数参数 我现在已经解决了从构造函数中删除它并创建一个属性的问
  • Amazon S3 签名 URL 和 Cloudfront - 访问被拒绝

    我正在创建一个signed url使用以下内容 AWS ACCESS KEY ID my access key AWS SECRET ACCESS KEY my secret access key KEYPAIR ID my keypair
  • 如何创建堆叠折线图 D3,多个 Y 轴和公共 X 轴

    我正在尝试使用 d3 创建一个折线图 该折线图将有多个 y 轴 但有一个公共 x 轴 有人可以为我提供如何使用 D3 库创建它的示例吗 它应该如下所示 很简单 只需绘制 2 个图表 但仅附加一个 x 轴 这里有一个小提琴可以帮助您入门 ht
  • C++ 无法计算包含向量大小的公式?

    int main vector
  • Visual Studio 使用标准格式复制/粘贴到 Outlook 中?

    我在 Visual Studio 中有包含深色背景的自定义设置 复制 粘贴到 Outlook 会对邮件的白色背景上的代码中的深色背景产生视觉犯罪 有谁知道如何以标准和格式粘贴代码 不是特殊粘贴中的未格式化文本 也不使用我的自定义 VS 格式
  • 如何在滚动运算符中访问多列?

    我想在 pandas 中进行一些滚动窗口计算 需要同时处理两列 我举一个简单的例子来清楚地表达问题 import pandas as pd df pd DataFrame x 1 2 3 2 1 5 4 6 7 9 y 4 3 4 6 5
  • Django 多对多模型 DRF

    我有以下模型结构 class Project models Model author models ManyToManyField Account name models CharField max length 40 default Ne
  • 如何在View和ViewModel之间传递数据

    我是 MVVM 设计模式的新手 我正在尝试创建一个简单的应用程序 其中主窗口中显示学生列表 我希望用户能够将新学生添加到我已完成的列表中绑定学生数据所在的可观察集合 但如何通过从文本框中获取数据并将其用作命令中的参数来创建新用户 这是我的观
  • 如何测试飞行路线迁移?

    通常迁移脚本很简单 例如添加新列等 如果应用程序已部署 则一切正常 但有时需要测试一些复杂的逻辑 推荐的方法是什么 有一个单独的数据库用于测试 将其作为每个构建的一部分进行迁移 并针对它运行测试 您还可以根据需要添加额外的测试数据 包括用于
  • Laravel Sanctum 可以使用 Multiauth 防护

    我正在用 laravel sainttum 进行测试 但这里有一些问题 我正在创建管理员警卫 当我将中间件更改为 auth sanctum admin 它应该只能由管理员访问 但在这里我可以使用带有网络防护的普通用户帐户进行访问 我不知道为
  • 有没有一种方法可以创建一个 pandas 数据框,其行是整数,这些整数会增加直到每行达到某个值?

    例如 假设我有整数数组 5 3 7 6 4 我希望找到一种有效的方法来创建如下所示的 pandas 数据框 数据帧中的第一行应包含数字 1 到 5 第二行应包含数字 1 到 3 依此类推 有没有办法在不循环的情况下实现这一目标 一个简单的单
  • 将枚举值传递给 PowerShell 中的函数

    我有一个接受枚举值作为参数的函数 举个例子 考虑一下这样的事情 PS gt function IsItFriday System DayOfWeek dayOfWeek if dayOfWeek eq System DayOfWeek Fr
  • SQL 行之间的差异

    我有一个像这样的 SQL 2008 数据库表 name score steve 207 steve 205 steve 200 steve 139 我想得到行之间的差异 eqn 行 行 1 所以我理想地希望它是 steve 2 207 20
  • 如何编写 Nexus Rest Api 的 Get 方法?

    I have groupId artifactId and version 如何使用 Nexus Rest API 编写 GET 请求以获得进一步的工件描述 不确定您要查找什么信息 REST API 文档可在此处获取 Core API ht
  • 如何在 Xamarin Forms 中获取设备的 GPS 位置?

    我想在输入框名为时获取我的设备的经度和纬度实体位置 is focused 我在用Xamarin Essential 地理定位为了获取我的设备的 GPS 位置 我按照文档和教程进行操作 但仍然无法获取 GPS 位置 我已经在我的 Androi
  • 如何在 Android webview 中打开 Microsoft Teams 会议

    我正在尝试在 Web 视图中打开 Microsoft Teams 会议 当我在 Web 视图中打开会议网址时 它开始寻找 MS Teams 应用程序 这是我不想要的 我只想在 Web 视图中参加会议 请帮助我在 Android 应用程序的
  • 包括 ionic 2/Angular 2 的通用标题栏

    我有一个 ionic 2 标题栏 其中包含主页或注销按钮和公司标志这对于所有页面都是通用的 我如何编写一个通用函数 Injectable 这样就可以很容易地包含在所有页面中 而不是重复代码