标签: ionic4

Ionic 4 (Angular 7) - 共享组件问题

我正在尝试为像 Angular 这样的框架做一件非常平常的事情。目标是通过共享模块多次使用相同的 ( HeaderComponent ) 组件。

我的 shared.module.ts:

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { HeaderComponent } from '../header/header.component';
import { IonicModule} from '@ionic/angular';

@NgModule({
    imports: [
        CommonModule, 
        IonicModule
    ],
    declarations: [
        HeaderComponent
    ],
    exports: [
        HeaderComponent
    ]
})

export class SharedModule {}
Run Code Online (Sandbox Code Playgroud)

在 app.module.ts 我添加了这个:

imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, SharedModule],
Run Code Online (Sandbox Code Playgroud)

在 home.page.html 中,我尝试以这种方式呈现它:

<app-header></app-header>
Run Code Online (Sandbox Code Playgroud)

它实际上有效,因为浏览器向我显示了类似的错误

'ion-col' 不是已知元素

对于HeaderComponent 中的所有离子组件,依此类推。

我在 Internet 上找到了该问题的解决方案,建议将其添加IonicModule.forRoot(HeaderComponent)shared.module.ts导入数组中,但这种方法会导致以下错误:

'app-header' …

angular ionic4

10
推荐指数
1
解决办法
4071
查看次数

离子4 +角度:routerLink仅在第一次使用

我现在从头开始开发基本应用程序时遇到一个奇怪的错误。我使用Ionic 4 beta 19,并已将routerLink放置到另一个页面,该路由是在基本页面模块中设置的,如下所示:

RouterModule.forChild([
  { path: '', component: NewsPage },
  { path: ':id', component: DetailPage }
])
Run Code Online (Sandbox Code Playgroud)

routerLink属性是在卡上设置的,单击卡时它可以正常工作,但是当我返回并按同一张卡或另一张卡时,路由器根本不执行任何操作。我没有任何错误,浏览器中的URL正常运行。怎么会这样?

编辑:此外,DetailPage没有模块,因此它基本上只是一个页面。

编辑:卡代码如下所示:

<ion-card *ngFor="let item of items;" [routerLink]="[item.id]">
  ...
</ion-card>
Run Code Online (Sandbox Code Playgroud)

在详细信息页面中,路由参数已预订,而:id参数将用于GET请求预订以检索数据

angular-routing ionic-framework angular ionic4

10
推荐指数
1
解决办法
4596
查看次数

类似于Instagram的强制触摸弹出模式

我正在尝试复制Instagram的强制触摸功能,其中

1)将手指放在图片上会变得更暗(悬停效果,简单)

2)稍微按一下,将显示内容的弹出模式预览

3)再按一次即可将模式扩展到全屏

我在使用Ionic 4 / Cordova“ 3d touch”插件时遇到问题,如果我先常规触摸屏幕,该插件不会注册强制触摸。

顺便说一句,当通过收听时,上述步骤2不会触发强制触摸 threeDeeTouch.watchForceTouches()

为了使听众触发,我必须先用力进入触摸,在“触摸”屏幕和“按下”屏幕之间没有延迟。如果我触摸屏幕但不按屏幕,则无法再按它来触发强制触摸而无需先抬起手指。

我正在真实的设备iPhone X上进行测试

如何解决此问题以在Instagram中复制强制触摸?

cordova ionic-framework cordova-plugins 3dtouch ionic4

10
推荐指数
1
解决办法
345
查看次数

Ionic v4 - 如何自动聚焦输入?

我有一个输入视图 <ion-input #codigobarras></ion-input>

如何自动关注此输入?

我试过什么

@ViewChild('codigobarras') input_codigobarras: Input;

...

ionViewDidEnter() {
    this.input_codigobarras.focus(); // didn't work = temp2.focus is not a function
    this.input_codigobarras.focus.emit(); // didn't work = do nothing, just returns undefined
    this.input_codigobarras.getElementRef().nativeElement.focus() // didn't work = do nothing, just returns undefined
    this.input_codigobarras.setFocus(); // didn't work = do nothing, just returns undefined
}
Run Code Online (Sandbox Code Playgroud)
<ion-input [autofocus]></ion-input> <!-- Didn't work -->
Run Code Online (Sandbox Code Playgroud)

autofocus ionic4

10
推荐指数
3
解决办法
1万
查看次数

“文件”类型的参数不可分配给“字符串 | 类型”的参数 formData 中的 Blob'

我有一些上传代码,可以从文件输入字段获取文件并上传

  basicUpload(files: File[]){
    var formData = new FormData();
    Array.from(files).forEach((file) => formData.append('file', file))
    this.http.post('https://file.io', formData)
      .subscribe(event => {  
        console.log('done')
      })
  }
Run Code Online (Sandbox Code Playgroud)

这有效,我可以从浏览器上传文件,但是当我尝试为本机平台准备代码时。我收到这个错误

Argument of type 'File' is not assignable to parameter of type 'string | Blob'.
  Type 'File' is not assignable to type 'Blob'
Run Code Online (Sandbox Code Playgroud)

我假设我需要在这一行输入文件

Array.from(files).forEach(file => formData.append('file', file))
Run Code Online (Sandbox Code Playgroud)

但我不知道如何实现这一目标。

ionic-framework angular ionic4

10
推荐指数
2
解决办法
2万
查看次数

错误:未捕获(承诺):覆盖不存在(离子可选)

我正在使用 ionic-selectable package github进行产品选择。在打开组件中的 IonicSelectable 之前,我在控制台中遇到错误。

ERROR Error: Uncaught (in promise): overlay does not exist
    at resolvePromise (zone.js:831)
    at zone.js:741
    at rejected (tslib.es6.js:71)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391)
    at Object.onInvoke (core.js:17299)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:390)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:150)
    at zone.js:889
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
    at Object.onInvokeTask (core.js:17290)
Run Code Online (Sandbox Code Playgroud)

我不明白提出这个问题的问题是什么。我已经按照说明中的说明使用了该软件包,例如app.module.ts

import { IonicSelectableModule } from 'ionic-selectable';
@NgModule({
  imports: [
    IonicSelectableModule
  ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

并在这样的延迟加载模块中

import { IonicSelectableModule } from 'ionic-selectable';
import { HomePage } from './home';
@NgModule({
  declarations: [
    HomePage …
Run Code Online (Sandbox Code Playgroud)

javascript ionic-framework angular ionic4

10
推荐指数
3
解决办法
1万
查看次数

Ionic 4 Angular - 如何自我解雇模态

在Ionic 3中,解雇模态非常简单:

constructor(viewCtrl: ViewController) {
    this.viewCtrl.dismiss()
}
Run Code Online (Sandbox Code Playgroud)

在Ionic 4中,我无法导入ViewController(或者说准确,我的IDE尝试导入一种ViewController).

我想知道解雇模态的新方法是什么.

ionic-framework angular ionic4

9
推荐指数
3
解决办法
8853
查看次数

Ionic 4 透明透明标头

我有一个 Ionic 4 应用程序,我想要一个透明的标题。Ionic 文档指出必须将“全屏”添加到离子内容中,并且必须将“半透明”添加到离子工具栏。

这不起作用,并且始终将工具栏留在顶部。我也将其添加到 css 中:

ion-toolbar {
   --background: transparent;
   --ion-color-base: transparent !important;
}

<ion-header>
  <ion-toolbar translucent >
    <ion-buttons slot="start"  (click)="goBack()">
        <ion-icon name="arrow-back"></ion-icon>
    </ion-buttons>
  </ion-toolbar>
</ion-header>

<ion-content fullscreen >
</ion-content>
Run Code Online (Sandbox Code Playgroud)

我能找到的实现透明标题效果的唯一方法是当我转到 chrome 中的 Shadow DOM 并向类“inner-scroll”添加背景属性时

但是,此类中没有与背景颜色相关的变量,因此我无法使用此方法更改背景。

我怎样才能让这个透明的标题/工具栏工作!?

解决方案:

对于遇到此问题的其他任何人 - 文档根本不清楚。要获得完全透明的功能标头:

<ion-header>
  <ion-toolbar translucent>
    <ion-back-button></ion-back-button>
  </ion-toolbar>
</ion-header>

<ion-content fullscreen> </ion-content>
Run Code Online (Sandbox Code Playgroud)

没有在css中添加以下内容:

ion-toolbar {
--ion-toolbar-background-color: transparent;
--ion-toolbar-text-color: white;
}
Run Code Online (Sandbox Code Playgroud)

该文档仅指定了 HTML 方面的内容,但是对于 Ionic 中的新 Shadow DOM,必须使用变量来更改大多数 Ionic 组件样式。

ionic-framework angular ionic4

9
推荐指数
3
解决办法
2万
查看次数

如何在Ionic 4中切换菜单

我是Ionic的新手,并且正在使用Ionic 4开发基本应用程序sidemenu

我在侧边菜单中添加了一个按钮,当我单击该按钮时,菜单未切换。有人可以帮我吗?这是我正在尝试的代码。

<ion-button color="primary" (click)="function()" class="class" menuToggle expand="block" fill="outline"> text </ion-button>

不重复问题的说明

请检查粗体字,我已经有一个正常工作的菜单,但是问题是我想在单击而ion-button不是时关闭该菜单ion-item

ionic-framework ionic4

9
推荐指数
1
解决办法
1万
查看次数

如何使用角度 7 覆盖 ionic 4 中的 ion-back-button 动作

当用户点击ion-back-button时,我想停止从一个页面导航到另一个页面。我有一些验证/检查要执行,具体取决于哪个应用程序将决定是否允许后退操作。

ionic-framework angular ionic4 angular7

9
推荐指数
2
解决办法
5995
查看次数