我正在尝试为像 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' …
我现在从头开始开发基本应用程序时遇到一个奇怪的错误。我使用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请求预订以检索数据
我正在尝试复制Instagram的强制触摸功能,其中
1)将手指放在图片上会变得更暗(悬停效果,简单)
2)稍微按一下,将显示内容的弹出模式预览
3)再按一次即可将模式扩展到全屏
我在使用Ionic 4 / Cordova“ 3d touch”插件时遇到问题,如果我先常规触摸屏幕,该插件不会注册强制触摸。
顺便说一句,当通过收听时,上述步骤2不会触发强制触摸 threeDeeTouch.watchForceTouches()
为了使听众触发,我必须先用力进入触摸,在“触摸”屏幕和“按下”屏幕之间没有延迟。如果我触摸屏幕但不按屏幕,则无法再按它来触发强制触摸而无需先抬起手指。
我正在真实的设备iPhone X上进行测试
如何解决此问题以在Instagram中复制强制触摸?
我有一个输入视图 <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) 我有一些上传代码,可以从文件输入字段获取文件并上传
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-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) 在Ionic 3中,解雇模态非常简单:
constructor(viewCtrl: ViewController) {
this.viewCtrl.dismiss()
}
Run Code Online (Sandbox Code Playgroud)
在Ionic 4中,我无法导入ViewController(或者说准确,我的IDE尝试导入一种ViewController).
我想知道解雇模态的新方法是什么.
我有一个 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的新手,并且正在使用Ionic 4开发基本应用程序sidemenu。
我在侧边菜单中添加了一个按钮,当我单击该按钮时,菜单未切换。有人可以帮我吗?这是我正在尝试的代码。
<ion-button color="primary" (click)="function()" class="class" menuToggle expand="block" fill="outline">
text
</ion-button>
不重复问题的说明
请检查粗体字,我已经有一个正常工作的菜单,但是问题是我想在单击而ion-button不是时关闭该菜单ion-item。
当用户点击ion-back-button时,我想停止从一个页面导航到另一个页面。我有一些验证/检查要执行,具体取决于哪个应用程序将决定是否允许后退操作。