在一个组件中,我试图瞄准dom节点并改变它的风格,但这不起作用,谁能告诉我我在这里做错了什么?
@Input() progress:number = 0;
...
ngOnChanges() {
this.progressInnerEl = this.elRef.nativeElement.querySelector('.progress-inner');
this.renderer.setStyle(this.progressInnerEl, 'width', this.progress+'%');
}
Run Code Online (Sandbox Code Playgroud) In my Angular project, i have custom fonts stored in src/assets/fonts/*
I reference these fonts in my styles.scss file like this:
@font-face {
font-family: 'museo_sans_package';
src: url('assets/fonts/MuseoSans_100-webfont.eot');
...
Run Code Online (Sandbox Code Playgroud)
When doing a production build using the Angular CLI, my fonts directory along with all the font files in it are copied to my ./dist directory correctly:
./dist/assets/fonts/*
however all of my font files are also getting duplicated into the root of my /dist directory as well resulting in 2 copies of …
也许我错过了什么?
在Angular 2组件中,我只是想获得完整的激活路径.
我不想用location.href.
我的构造函数如下:
constructor(private route: ActivatedRoute) {}
Run Code Online (Sandbox Code Playgroud)
在ngOnInit()我尝试找到这里的价值无济于事:
this.route.data.url
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.
使用普通的旧 javascript,这很简单:
myElement.style.setProperty('property', 'value', 'important');
Run Code Online (Sandbox Code Playgroud)
在 Angular 中,没有那么多。我已经在任何地方进行了详尽的搜索,但找不到一个关于如何执行此操作的示例,因此我在这里提出了这个问题。
Angular 中的 Renderer2 坏了,或者我只是做错了。
我将以下内容导入到我的组件中:
import {ElementRef, Renderer2, RendererStyleFlags2 } from '@angular/core';
Run Code Online (Sandbox Code Playgroud)
并且,在我的构造函数中:
constructor(private elRef: ElementRef,
private renderer: Renderer2);
Run Code Online (Sandbox Code Playgroud)
我在我的模板中的一个元素上设置了一个没有问题的样式:
this.renderer.setStyle(this.elRef.nativeElement.querySelector('.my-div'), 'color', '#fff');
Run Code Online (Sandbox Code Playgroud)
当我尝试像这样设置重要标志时:
this.renderer.setStyle(this.elRef.nativeElement.querySelector('.my-div'), 'color', '#fff', RendererStyleFlags2.Important);
Run Code Online (Sandbox Code Playgroud)
或者像这样:
this.renderer.setStyle(this.elRef.nativeElement.querySelector('.my-div'), 'color', '#fff', flags:RendererStyleFlags2.Important);
Run Code Online (Sandbox Code Playgroud)
或者像这样:
public myFlags:RendererStyleFlags2;
this.renderer.setStyle(this.elRef.nativeElement.querySelector('.my-div'), 'color', '#fff', myFlags.Important);
Run Code Online (Sandbox Code Playgroud)
或者像这样的另一种方式:
public myFlags:RendererStyleFlags2.Important;
public myFlags:RendererStyleFlags2.Important = 1;
Run Code Online (Sandbox Code Playgroud)
以及使用数组和对象的许多其他尝试:
myFlags:any = {important: 1}
Run Code Online (Sandbox Code Playgroud)
以上都不起作用。
这是存在于 angular core 中的方法:
setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {
if (flags & RendererStyleFlags2.DashCase) { …Run Code Online (Sandbox Code Playgroud) 在 JavaScript 中,我有一种方法可以通过 http post 请求成功验证我的服务器。
来自我的服务器的响应数据在 Authorization 标头中发送 JWT,如下所示:
Authorization: Bearer mytoken12345abc
Run Code Online (Sandbox Code Playgroud)
我可以从我的服务器响应数据中成功检索授权标头,例如:
let authheader = response.headers.get('Authorization');
Run Code Online (Sandbox Code Playgroud)
但是我该如何解析呢?“Bearer”是钥匙吗?所以像:
let token = authheader.Bearer
Run Code Online (Sandbox Code Playgroud)
这显然是不正确的。我接下来可以尝试什么?
换句话说,以下是最好的方法吗?
let token = response.headers.get('Authorization');
let parsedToken = token.slice(7);
Run Code Online (Sandbox Code Playgroud) 我有一个 Firebase 云函数,它根据 Firebase文档中提供的示例监控对我的实时数据库的更改。
我的函数工作正常,并按照编写的目的对每次更改执行。
话虽如此,并且根据 Firebase 的建议:
• 去抖动- 在Cloud Firestore 中侦听实时更改时,此解决方案可能会触发多个更改。如果这些更改触发的事件比您想要的多,请手动去抖动 Cloud Firestore 事件。
我只想这样做。
任何人都可以提供一个好的方法吗?
如果我们根据 Firebase 的示例查看此函数:
exports.onUserStatusChanged = functions.database.ref('/status/{uid}').onUpdate(
async (change, context) => {
// Get the data written to Realtime Database
const eventStatus = change.after.val();
// Create a reference to the corresponding Firestore document
const userStatusFirestoreRef = firestore.doc(`status/${context.params.uid}`);
// re-read the current data and compare the timestamps.
const statusSnapshot = await change.after.ref.once('value');
const status = statusSnapshot.val();
// If the current timestamp …Run Code Online (Sandbox Code Playgroud) 我正在努力掌握 NgRx 效果。
使用最新的版本 8,我编写了以下效果,它结合了 observable 和承诺,并且正在努力掌握如何正确编写它。
这是否保证捕获所有可能的错误?
authLogin$ = createEffect(() => this.actions$.pipe(
ofType(AuthActions.authLogin),
switchMap(async(action) => {
try {
const userState = await this.loginService.login(action.username, action.password);
return AuthActions.authSuccess(userState);
}
catch (error) {
return AuthActions.authLoginError({
error: error
});
}
})
),{ resubscribeOnError: false });
Run Code Online (Sandbox Code Playgroud)
我也不清楚是否应该使用此配置的最后一点:这{ resubscribeOnError: false }是否意味着后续执行将创建一个全新的 observable?
有没有更好的方法?
在 Firebase Cloud Function 项目中...
我在src我的主index.ts文件旁边的目录根目录下有以下打字稿文件,该文件导入一个依赖项并导出一个包含 2 个方法的类。这个文件的标题是bcrypt.class.ts:
import * as bcrypt from 'bcryptjs';
export default class BcryptTool {
public static hashValue(value: string, rounds: number, callback: (error: Error, hash: string) => void) : void {
bcrypt.hash(value, rounds, (error:any, hash:any) => {
callback(error, hash);
});
}
public static compare(value: string, dbHash: string, callback: (error: string | null, match: boolean | null) => void) {
bcrypt.compare(value, dbHash, (err: Error, match: boolean) => {
if(match) {
callback(null, …Run Code Online (Sandbox Code Playgroud) 在javascript中给出以下2个对象:
myFruit = {
'apple': 14,
'orange': 3,
'pear': 10
}
theirFruit = {
'banana': 10,
'grape': 30,
'apple': 2
}
Run Code Online (Sandbox Code Playgroud)
返回匹配元素数组的最有效方式是什么?每个键的值无关紧要。
下面是一个示例,但有一些事情告诉我,可能有更好的方法。
let matches = [];
let myKey;
Object.keys(myFruit).forEach((key, index) => {
myKey = key;
Object.keys(theirFruit).forEach((theirKey, index) => {
if(myKey === theirKey) {
matches.push(theirKey);
}
});
});
console.log(matches);
// will print: ['apple']
console.log(matches.length);
// will print: 1
Run Code Online (Sandbox Code Playgroud) angular ×6
javascript ×3
firebase ×2
asynchronous ×1
debounce ×1
fonts ×1
header ×1
jwt ×1
ngrx ×1
node.js ×1
object ×1
observable ×1
promise ×1
renderer ×1
router ×1
typescript ×1