import { Component, ViewChild} from '@angular/core';
import { Keyboard } from 'ionic-native';
@Component({
templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
@ViewChild('input') myInput ;
constructor() {}
ionViewDidLoad() {
setTimeout(() => {
Keyboard.show() // for android
this.myInput.setFocus();
},150);
}
}
Run Code Online (Sandbox Code Playgroud)
1)导入"ViewChild"
import {Component, ViewChild} from '@angular/core';
2)在html模板中创建对输入的引用:
<ion-input #focusInput></ion-input>
Run Code Online (Sandbox Code Playgroud)
3)使用@ViewChild访问您刚才引用的输入组件.
@ViewChild('focusInput') myInput ;
4)触发焦点
每次加载视图/页面时,使用ionViewLoaded()方法触发它.
需要setTimeout
ionViewLoaded() {
setTimeout(() => {
Keyboard.show() // for android
this.myInput.setFocus();
},150); //a least 150ms.
}
Run Code Online (Sandbox Code Playgroud)
4)在Android上显示键盘
import { Keyboard } from 'ionic-native';
调用Keyboard.show()在Android上调用键盘.
5)在iOS上显示键盘 …
如何在不使用实时数据库但使用Firestore的情况下获取服务器时间戳?
import * as functions from 'firebase-functions'
import { Firestore } from '@google-cloud/firestore'
const db = new Firestore()
export let testIfMatch = functions.firestore
.document('users/{userId}/invites/{invitedUid}')
.onCreate(event => {
let invite = <any>event.data.data()
if (invite.accepted == true) {
return db.collection('matches').add({
friends: [userId, invitedUid],
timestamp: doc.readTime // <--- not exactly the actual time
})
}
Run Code Online (Sandbox Code Playgroud) javascript firebase google-cloud-functions google-cloud-firestore
我的 vue 应用程序有一个动态标签机制。
用户可以根据需要随时创建任意数量的标签,每个标签都有自己的状态(例如“页面”)。
我正在使用该<keep-alive>组件来缓存不同的页面。
<keep-alive include="page">
<router-view :key="$route.params.id" />
</keep-alive>
Run Code Online (Sandbox Code Playgroud)
但用户也可以“关闭”单个选项卡。由于页面往往存储大量数据,当用户关闭选项卡时,我想从缓存中删除相应的页面组件。
如何以编程方式销毁 keep-alive 中的缓存组件?
我正在使用一个.npmrc文件来配置一个私有仓库 (font-awesome-pro)。
它在没有 docker 的情况下运行良好。
但是对于 docker,npm install失败了:
npm ERR! code E401
npm ERR! 404 401 Unauthorized: @fortawesome/fontawesome-pro-light@https://npm.fontawesome.com/7D46BEC2-1565-40B5-B5FC-D40C724E60C6/@fortawesome/fontawesome-pro-light/-/fontawesome-pro-light-5.0.12.tgz
Run Code Online (Sandbox Code Playgroud)
我已经阅读了 NPM 的文档:Docker 和私有包,但我不知道如何应用它,docker-compose.yml我不确定传递变量是解决方案(?)。是否有可能.npmrc在 docker 实例中安装期间未读取该文件?我错过了什么吗?
这是我的docker-compose.yaml:
npm ERR! code E401
npm ERR! 404 401 Unauthorized: @fortawesome/fontawesome-pro-light@https://npm.fontawesome.com/7D46BEC2-1565-40B5-B5FC-D40C724E60C6/@fortawesome/fontawesome-pro-light/-/fontawesome-pro-light-5.0.12.tgz
Run Code Online (Sandbox Code Playgroud)
和我的.npmrc(用替换的令牌):
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud) 如何自动调整所有列的大小,包括自动分组列?
以下代码仅调整标准列的大小,而不是自动组列的大小,因为this.gridColumnApi.getAllColumns()不返回自动组列:
autoSizeAllColumns() {
const allColumnIds = this.gridColumnApi.getAllColumns().map(c => c.colId)
this.gridColumnApi.autoSizeColumns(allColumnIds)
},
Run Code Online (Sandbox Code Playgroud) 我有一个“选择”列,我想在标题名称中包含当前选定行的总数。
我正在使用,headerValueGetter但在选择新行时不会刷新该值。
// in my colDef
headerValueGetter: params => `(${this.totalSelected})`
// methods
onSelectionChanged(event) {
this.totalSelected = event.api.getSelectedNodes().length
},
Run Code Online (Sandbox Code Playgroud)
totalSelected 是我的 Vue 组件的一个属性,它的值在选择新行时更新。
任何想法如何做到这一点?
我正在动态注册 vuex 商店模块
store.registerModule('home.grid', GridStore)
然后在组件中:
export default {
name: 'GridComponent',
props: {
namespace: {
type: String,
required: true
},
computed: {
...mapState(this.namespace, ['filter']) // doesn't work
filter() { // more verbose but working
return this.$store.state[this.namespace].filter
}
}
...
Run Code Online (Sandbox Code Playgroud)
但我得到了错误:
无法读取未定义的属性“命名空间”
任何的想法 ?
问题最初是从“gabaum10”这里提出的https://forum.vuejs.org/t/vuex-dynamic-namespaces-in-mapstate-mapactions/28508