我是离子和角度的新手。有人可以告诉我如何在表单组中使用 ngmodel 以便我可以获取数据。有没有其他方法可以做到这一点。我在谷歌搜索了一些答案,但我没有真正找到答案,这是我的 .html
<ion-slides #signupSlider>
<ion-slide>
<ion-list>
<form novalidate [formGroup]="slideOneForm">
<ion-item>
<ion-label color="white" fixed>First Name:</ion-label>
<ion-input type="text" placeholder="Enter your First Name" formControlName="fname" [(ngModel)]="userData.fname" [ngModelOptions]="{standalone: true}"></ion-input>
</ion-item>
</form>
</ion-list>
</ion-slide>
<ion-slide>
<ion-list>
<form novalidate (ngSubmit)="signup()" [formGroup]="slideTwoForm">
<ion-item>
<ion-label color="white" fixed>Address:</ion-label>
<ion-textarea placeholder="Enter your Address" rows="3" formControlName="address" [(ngModel)]="userData.address"></ion-textarea>
</ion-item>
</form>
</ion-list>
<button ion-button round (click)="signup()" [disabled]="slideTwoForm.invalid">Signup</button>
</ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)
这是 mt .ts 文件
import { Component,OnInit,ViewChild } from '@angular/core';
import { ToastController,LoadingController } from 'ionic-angular';
import { FormControl, FormGroup, Validators, AbstractControl, ValidatorFn …Run Code Online (Sandbox Code Playgroud) 我正在使用 Angular 表单,并且我想使用它们的内置更改检测在我的应用程序中实现一个功能。当用户单击按钮时,如果他/她对表单进行了任何更改,他/她应该只会看到一个对话框。
我有 changesMade 变量:
private changesMade: boolean;
Run Code Online (Sandbox Code Playgroud)
这是我的形式的 TS 代码:
this.carForm = new FormGroup({
name: new FormControl('', [
Validators.required,
Validators.pattern('[a-zA-Z ]*'),
Validators.minLength(1),
Validators.maxLength(10)
])});
Run Code Online (Sandbox Code Playgroud)
这是我的表单的 HTML 代码:
<form [formGroup]="carForm">
<ion-item>
<ion-label stacked>car name</ion-label>
<ion-input type="text" [(ngModel)]="carname" formControlName="name"></ion-input>
</ion-item>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的模拟(目前)服务调用,在我设置了绑定到输入的 carname 的值后,我订阅了表单更改
setTimeout(()=>{
this.carname = "BMW";
this.carForm.valueChanges.subscribe(val => {
this.changesMade = true;
});
}, 44)
Run Code Online (Sandbox Code Playgroud)
这里的问题是,即使我没有接触过表单,this.changesMade 也会被设置为 true。
注意:如果我在 ngAfterViewInit 中移动代码的 subscribe 部分,它仍然将 changesMade 设置为 true,即使我没有触摸输入:
ngOnInit(){
//simulated server call
setTimeout(()=>{
this.carname = "BMW";
}, 44)
}
ngAfterViewInit(){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将加载微调器集成到按钮中。这也很有效。问题:如果我点击一个按钮,微调器会响应每一个额外的按钮。
我该如何纠正?
我的代码:
<button ion-button block (click)="loading = true">
<ion-spinner class="whiteSpinner" item-left *ngIf="loading" name="bubbles"></ion-spinner>
Buy now - 1,49€
</button>
Run Code Online (Sandbox Code Playgroud)
其他按钮一样...
图像向您展示我的意思:
我想在应用程序中实现推送通知系统。但是我使用的任何插件都会给我一个“找不到名称”的错误。后来我发现它不是推送通知问题。我猜这是一个打字问题,但找不到如何解决。我是离子开发的新手。请帮忙。
我尝试了一些打字插件,但没有任何效果。
我想知道当我们在 ionic 3 中默认单击 ion-navbar 后退按钮时调用哪个函数。我想在硬件后退按钮单击时调用相同的函数。
ionic 3,我已经成功实现了动态选择选项,我希望能够将所选到Option的ID值和Name值发送到服务器
因为我只能获得 ID 或名称,所以我无法获得两个值,请帮忙,我已经尝试了 JSON.parse,以及选项中的 id.value 和 name.value,但遗憾的是我是只能获得第一个值,不能同时获得
<ion-list >
<ion-item class="list-but">
<ion-label>Tipo de Ambiente</ion-label>
<ion-select
[(ngModel)]="idType"
multiple="false"
cancelText="Cancelar"
okText="Ok"
>
<ion-option
*ngFor="let type of type_environment"
value="{{ type.name }}"
value="{{ type.id }}"
#name
>{{ type.name }}</ion-option
>
</ion-select>
</ion-item>
</ion-list>
<button ion-button block (click)="insert()">Salvar</button>
``public type_environment = new Array<any>();
public idType: number = 0;
public nameType: string = "name";
private userData: any;`
```
insert() {
this.userData = this.user.getUserData();
let body = {
name: this.nameType,
id_type: this.idType,
id_unity: this.navParams.get("id.unidade")
}; …Run Code Online (Sandbox Code Playgroud) 我已经在我的 Ionic 3 应用程序中集成了谷歌地图,它运行良好,但一段时间后它停止工作。它给了我错误ERROR TypeError: Cannot read property 'constructor' of undefined。
所以我已经卸载了 Ionic Native Google Maps 插件,并按照此处的建议再次安装。
但是当我安装它时,它给了我一个TypeError: Object(...) is not a function关于 ionic native core的错误,它使我的应用程序崩溃。所以我再次将 ionic native core plugin 降级到4.18.0(最新版本是 v. 5.10.0),应用程序再次开始工作,但我的谷歌地图仍然无法工作。
我的谷歌地图代码如下。
import {
GoogleMaps,
GoogleMap,
GoogleMapsEvent,
GoogleMapOptions,
CameraPosition,
MarkerOptions,
Marker,
Environment
} from "@ionic-native/google-maps";
export class MapPage {
map: GoogleMap;
constructor() {
}
ionViewDidLoad() {
this.loadMap();
}
loadMap() {
//https://github.com/ionic-team/ionic-native-google-maps/blob/master/documents/markeroptions/README.md'
// This code is necessary for browser
Environment.setEnv({
API_KEY_FOR_BROWSER_RELEASE: …Run Code Online (Sandbox Code Playgroud) 
我有一个带有离子头像和带有大文本的离子标签的离子项目。为了在 ion-label 中显示全文,我向 ion-label 添加了一个类“ion-text-nowrap”。它工作正常。但问题是 ion-avatar 自动放置到 ion-item 的垂直中心。我不需要对齐头像垂直对齐中间。我想要那个对齐 ion-item 的左上角。我怎样才能做到这一点?
这是我的代码:
<ion-item>
<ion-avatar slot="start">
<img [src]="img">
</ion-avatar>
<ion-label class="ion-text-nowrap">
<p>{{text}}</p>
</ion-label>
</ion-item>
Run Code Online (Sandbox Code Playgroud) 您好,我正在研究离子应用程序。执行此命令ionic cordova build android --prod --release。它确实生成了未签名的 apk 文件,但它也在 network_security_config 文件中显示错误。
错误
app\src\main\res\xml\network_security_config.xml:4: Error: Missing includeSubdomains attribute [NetworkSecurityConfig]
<domain>localhost</domain>
我尝试了多种解决方案,但对我不起作用。
参考
如何在 Android (9) Pie 中允许所有网络连接类型 HTTP 和 HTTPS?
Cordova 如何支持 Android 7.0 引入的网络安全配置?
有人可以帮我解决这个问题吗?
我有一个复选框列表,我需要确定何时选中这些项目中的至少一项以启用按钮。
到目前为止,我已经设法做到了,但它不适用于event.target.checked,只是什么也没发生,我也只是尝试过event.checked,但什么也没做。
<ion-list>
<ion-item *ngFor="let option of question.options">
<ion-label>{{option}}</ion-label>
<ion-checkbox color="secondary" value="option" (click)="isChecked($event)" name="option"></ion-checkbox>
</ion-item>
</ion-list>
Run Code Online (Sandbox Code Playgroud)
文件.ts:
isChecked(event) {
if ( event.target.checked ) {
console.log("Checked!");
this.btnDisabled = false;
}
}
Run Code Online (Sandbox Code Playgroud)
离子版本:3.9.5
角 5
ionic3 ×10
angular ×7
typescript ×3
ionic4 ×2
back ×1
button ×1
google-maps ×1
ionic-native ×1
ionic2 ×1
rxjs ×1