在 Ionic 2 应用程序中,模板在构造函数之前首先加载

2024-03-12

我正在开发 ionic 2 应用程序。我正在尝试调用组件中的服务并尝试在模板中访问它。但我面临的问题是模板首先加载,然后组件中的承诺输出成功。因此,如果我尝试访问任何“req_obj”值,我会从模板中收到未定义的错误。如何确保承诺首先得到解决,然后我的模板等待获取输出?

我的服务:

loadTruckdetail(id)
{
if (this.truckListdetail) {
  return Promise.resolve(this.truckListdetail);
}

return new Promise(resolve => {
  this.http.get('http://demo.truckjee.com/api/trucks/' + id + '?api_token='+this.userToken)
    .map(res => {
      return res.json().truck;
    })
    .subscribe(truck => {
      this.truckListdetail = truck;
      resolve(this.truckListdetail);
      console.log(this.truckListdetail);
      console.log(this.truckListdetail.id);
    });
});
}

我的组件:

import { Component, OnInit, Injectable } from '@angular/core';
import { ionicBootstrap, Platform, Nav } from 'ionic-angular';
import { FormBuilder, FormGroup } from '@angular/forms';
import { NavController, NavParams, LoadingController  } from 'ionic-angular';
import {Dashboardparam} from '../../providers/user-data/user-data';
import {Api} from '../../providers/api/api';
import {Authentication} from '../../providers/authentication/authentication';
import { HomePage } from '../home/home';

@Component({
  templateUrl: 'build/pages/requirement-show/requirement-show.html',
  providers: [Api]
})
@Injectable()
export class RequirementShowPage {
  myForm: FormGroup;
  req_obj: any;
  my_trucks: any;
  bids: any;
  cargo_details: any;
  payment_details: any;
  is_valid: number;

constructor(private builder: FormBuilder, private Auth: Authentication, public nav: NavController, private api: Api, navParams: NavParams, public loadingCtrl: LoadingController) {
  api.loadDetail(navParams.get('id'))
  .then( requirementValue => {
    this.req_obj = requirementValue;
console.log(req_obj);
  });
}
}

来自 API 的 JSON 响应:

{"message":"success","requirement":{"id":42,"status":0,"no_of_trucks":1,"user_id":11,"source":"Vadakkencherry, Kerala 678683, India","source_locality":"Vadakkencherry","source_district":"Palakkad","source_state":"Kerala","destination":"Chennai, Tamil Nadu, India","destination_locality":"Chennai","destination_district":"Chennai","destination_state":"Tamil Nadu","date_required":"Sep 26, 2016","date_delivery":"Sep 26, 2016","transit_time":1,"cargo_details":{},"payment_details":{},"valid_till":"2016-09-26 22:28:59","created_at":"2016-09-26 16:28:59","updated_at":"2016-09-26 16:28:59","expected_cost":"22500","created_by":11,"truck_types":[{"id":45,"requirement_id":42,"model_id":36,"created_at":"2016-09-26 16:28:59","updated_at":"2016-09-26 16:28:59"}],"bids":[]},"trucks":[{"id":6,"truck_id":"TR106","truck_number":"TN-52-J-9330","owner_id":7,"model_id":36,"description_id":269,"status":"0","short_form":"TN52 J9330","imei":"0358511020724179","current_locality":"Panniyankara","current_district":"Palakkad","current_state":"Kerala","current_lat":"10.5895666666666","current_long":"76.4524366666666","gps_updated_location":"NH544, Panniyankara, Kerala 678686, India","gps_last_updated":"2016-09-26 21:10:29","gps_updated_speed":"0","rc":"","insurance":"","pollution":"","np":"","authorization":"","created_at":"2016-06-03 18:34:03","created_by":1}]}

您可以使用*ngIf“保护”您的模板的指令,例如:

<div *ngIf="req_obj">
    {{req_obj.message}}
</div>

这边走,div仅在赋值后才会显示req_obj。虽然它的价值是undefined,您的模板中会有一条注释,如下所示:

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

在 Ionic 2 应用程序中,模板在构造函数之前首先加载 的相关文章

  • 如何使用 Angular4 进行 Codeigniter 视图?

    首先 我的 PHP Codeigniter 项目当前在服务器上运行 然后我在服务器上安装了最新的 Angular4 CLI Typescript 但我不知道如何与Codeigniter项目集成 如何像 AngularJS 一样在 Codei
  • Angular2、ZoneJS 和外部更改的 DOM

    我需要一些有关 Angular2 RC1 Web 应用程序中外部更改的 DOM 的帮助 场景很简单 我确实有一个带有相应模板的组件 其中包含一个具有如下 ID 的空 div div div typescripted 组件有一个 ngOnIn
  • 如何在 Angular2 中隐藏和替换组件

    你好 我有一个父组件 A 它有 2 个子组件 B 和 C 父级A默认显示子组件B 现在 当单击父级A上显示的按钮时 它将用子组件C替换子组件B 在Angular2中单击按钮后 如何用组件C替换组件B 为此 您可以使用 ngIf https
  • mat-table 中每行的 formGroup 数组

    我有一个 formGroup 数组 其中每个元素代表一个表单 接下来我有一个 mat 表 我想要做的是将每个 tr 即每一行 生成为不同的表单 以便表的第 i 行链接到第 i 个 formGroup 因此 在第 i 行内 每个 td 元素都
  • 两个服务如何以双向方式相互通信?

    一种是通过事件 另一种是通过调用方法 我试图在我的应用程序中实现聚合模式 我有 AuthService 在这里我处理身份验证结果并发出事件 if auth this eAuth emit true else this eAuth emit
  • 数字和文本列的垫排序问题

    我有角度材料数据源 角度材料版本是 5 0 3 排序正在进行中 但是对于某些列 它的排序不正确 那里有数字和文字 例如 排序结果如 XXX 1 1tesxt 1 OPD OXD 12
  • Angular 5 中使用 rxjs 进行持久订阅

    我对 Angular 5 中的 rxjs 仍然有点陌生 并且很难表达我的问题 我仍然希望得到一些提示 我经常会得到相同的设置 多个组件显示相同的数据 访问数据的单个服务 现在通过 Observables 接收数据时我有 2 个选择 a 订阅
  • Angular 2 - 加载时共享服务

    我正在尝试将服务共享给组件 为此 我创建了 service ts 其中代码如下 import Subject from rxjs Subject export class CommonService CommonList new Subje
  • Angular service-worker范围在安装过程中遇到错误

    我正在尝试使用 Angular Service Worker 但在尝试使用它时出现错误 这些是我的版本 Angular CLI 15 2 0 Node 16 18 1 Package Manager npm 8 19 2 OS linux
  • Webpack 在 Angular 的 ng 服务中的作用

    我是 Angular 的新手 想知道当我们为应用程序提供服务时 Webpack 在幕后扮演什么角色 在最初的印象中 我开始知道 webpack 是一个构建和打包工具 它将所有必需的 JS 文件分组到单独的包中 然而 我无法找到 webpac
  • 无法在 Angular 10 中的“pdf-viewer”=>“ng2-pdf-viewer”中显示 blob url

    我有一个 API 它将上传的文件作为 blob 返回 当我尝试绑定时src如果使用 blob URL 则它不会显示任何内容 但是 当我尝试绑定直接 URL 时 它可以显示 PDF 文件 这是我下面给出的代码 我的 TS 代码 downloa
  • 令牌中不存在必需的声明 nbf(使用 Firebase Microsoft Sign In 尝试访问 Microsoft Graph)

    我目前有一个具有以下结构的应用程序 Angular 前端 Node js 服务器 我们已实施 Google Cloud 的身份提供商以使用 Google 和 或 Microsoft 进行登录 Google 登录并访问 Google Clou
  • Angular 2 - 突出显示更新的表格单元格

    如何在表中刷新改变其值的单元格 tr td product productName td td product price td tr 在组件中我有产品的输入 Input products Array
  • 显示在 Angular 5 中作为 Blob 对象接收的图像

    我正在开发一个 MEAN Stack 应用程序 我想做的是显示存储在数据库中的图像 这样后端就可以工作 但我真正的问题是在前端Angular所以我这样做了 首先从后端接收图像 我做了一个服务来做到这一点 Function to get us
  • Angular *ngFor 循环遍历数组的数组

    我有一个数组 其中包含其他数组 如下所示 array element A element B YES NO 我想使用 ngFor 循环遍历 HTML 表中的这个对象数组 table thead tr th th th COLUMN 1 th
  • Angular 9:上传图像时如何将 HEIF 文件格式转换为已知的 Web 格式

    我正在维护一个用 Angular 9 编写的 Web 应用程序 PWA 用户可以在 Cropperjs 中上传图像并裁剪 旋转等 在 iOS 上 新的图像格式 HEIF 正在成为标准 这些用 户抱怨他们无法上传照片 似乎iOS有时会自动转换
  • 如何在 TypeScript 中禁用/抑制库中的错误?

    我打开了一些编译器开关来报告代码中的更多问题 例如严格的空检查 但我在使用的库中遇到了数十个错误 例如 default xxx node modules angular core src util decorators d ts 11 5
  • MatAutocomplete 值 X 显示

    我的自动完成显示具有以下定义的对象的值 export class Person id number name string cityName string 这是自动完成模板
  • 如何使用 Angular 2 动画实现翻转效果?

    我一直在我的项目中使用纯CSS翻转卡片 但这个解决方案不是合适的 有人可以通过点击按钮来呈现角度 2 的翻转吗 我在 angularjs 中找到了一个https codepen io Zbeyer pen oXQrZg https code
  • 在 Angular 9 应用程序的生产中同时使用 AOT 和 JIT

    因此 我一直在构建一个 Angular 9 应用程序 其中有一个客户仪表板来管理保存在服务器上的模板 这些模板可以通过激活系统在不同的设备上查看 因此设备与用户绑定 所以让我们说https templates com我们有 login da

随机推荐

  • 正则表达式获取捕获组的大小

    是否可以编写一个正则表达式 以便我可以稍后在同一正则表达式中引用 第一个捕获组的长度 我在这里想要实现的是捕获连续发生的情况1后面跟着连续出现的确切次数2 s 我想要类似的东西 r 1 2 length 1 where length 1 s
  • 防止 Windows 程序将 ^Z 解释为文件结尾

    我的工作是翻译一个从 C 到 C 的应用程序 该应用程序已安装在 Linux 发行版上 所以我希望 C 和 Linux 的功能 我在读取二进制文件时遇到问题 它说当它遇到一个时到达EOFctrl Z到达文件实际末尾之前的字符 bash 中宝
  • Angular 2:在模板内使用光滑的轮播

    我使用光滑的轮播作为我的角度项目中的组件 这个光滑的组件如下所示 Component selector slick slider template
  • 如何获取当前 UINavigationController 的引用?

    在 Objective C 中 获取当前 UINavigationController 引用的最佳方法是什么 我想从任何可能没有引用 UIController 委托或其他任何内容的类访问它 是否有现有的方法来获取当前的 UINavigati
  • 使用 R 中的 dplyr 和摘要向每一行添加哈希

    我需要向数据集中的每一行添加指纹 以便检查同一组的更高版本以查找差异 我知道如何为 R 中的每一行添加哈希 如下所示 data frame iris hash apply iris 1 digest 我正在学习使用dplyr由于数据集变得越
  • Jetpack Compose 是否有创建自定义过度滚动效果的工具?

    有没有办法在jetpack compose中创建过度滚动效果 像这样的事情 过度滚动效果可以通过以下方式控制LocalOverscrollConfiguration 目前有以下参数 GlobeColor 发光效果的颜色 如果平台效果是发光效
  • json.dumps \u 将 unicode 转义为 utf8

    我来自这个老讨论 https stackoverflow com questions 18337407 saving utf 8 texts in json dumps as utf8 not as u escape sequence 但该
  • 从磁盘读取的文本不符合换行符

    Using the Text widget with text that s read from disk that contains new line characters n does not go to new line Anyone
  • 从具有运行时索引的元组中选择一组值

    简短介绍我的问题 我正在尝试使用 stl 容器实现 某种 关系数据库 这只是出于娱乐 教育目的 因此不需要诸如 使用这个库 这绝对没用 之类的答案 我知道此时标题有点令人困惑 但我们会达到目的 非常欢迎改进标题的建议 我采取了一些小步骤 我
  • 如何在PHP中将大整数转换为十六进制?

    我怎样才能转换这个 93126606828970615947672892964530113131806047264927526149623497787359285987082123864065558768789161850941454200
  • (Dis)使用 Windows.Devices.Bluetooth.Rfcomm (WP8.1) 连接蓝牙设备

    在 Windows Phone Desktop 8 1 上连接和断开蓝牙设备会产生不同的结果 我一直在使用Windows Devices Bluetooth Rfcomm命名空间 我尝试连接多个具有不同蓝牙版本 类别的设备 版本 1 2 1
  • Laravel 5.2 为列上的 JSON 构建查询

    我正在使用 MySql 5 7 14 和 laravel 5 2 我的表 用户 JSON 如下所示 id 1 options religion R hllor the Lord of Light favorite color red 当我通
  • Kotlin 中的对象和数据对象

    我在 Sealed 类中编写了这 3 个游戏状态 sealed class Status object Idle Status object Active Status object GameOver Status IDE 没有任何地方建议
  • 在 Windows 中创建 Zip 文件并在 Linux 中解压 Zip 文件

    我在 Windows 下创建了一个 zip 文件 连同目录 如下所示 代码选自http www exampledepot com egs java util zip CreateZip html http www exampledepot
  • 使用循环和 if/else 的现金找零程序

    编写一个程序 允许用户输入最多 200 00 美元的现金金额 然后计算并打印以下面额 20 10 5 1 25 10 05 01 的金额 我想我已经弄清楚了如何获得面额 除法 模数 的基础知识 但 do while 和 if else 的结
  • Google Adsense 响应式广告未显示

    在下面的链接中here http syriantc com abohani index general 我有 3 个广告 右 左 标题广告 他们正在使用响应式单元 状态为 活动 问题是响应式广告没有显示 谷歌搜索显示这是由 CSS 主题引起
  • 如何在 TableView (javaFX 8) 的 TableColumn 中显示“单个条形图”?

    这是一个屏幕截图 感兴趣的是 右上部分和下部分 下半部分选择了一条规则 该规则共调用1080次 其中成功调用274次 空调用成功84次 现在我正在显示成功与总数的比率 以及空与成功的比率 我希望能够做的是废弃比率 而是使用一个图形栏来显示非
  • 在Java中捕获全局按键

    因此 每当用户在 Swing 应用程序中的任意位置按下空格键时 我想触发一个事件 暂停 取消暂停某些媒体 由于有如此多的控件和面板可以具有焦点 因此实际上不可能向所有控件和面板添加关键事件 更不用说总的 所以我发现 KeyboardFocu
  • grobToDev.default(gTree, dev) 中的错误

    我正在尝试使用shiny gridSVG 构建一个应用程序 这个问题不断发生 我对此一无所知 我的服务器 R library grid library lattice library gridSVG shinyServer function
  • 在 Ionic 2 应用程序中,模板在构造函数之前首先加载

    我正在开发 ionic 2 应用程序 我正在尝试调用组件中的服务并尝试在模板中访问它 但我面临的问题是模板首先加载 然后组件中的承诺输出成功 因此 如果我尝试访问任何 req obj 值 我会从模板中收到未定义的错误 如何确保承诺首先得到解