小编Dev*_*ike的帖子

Angular 4 renderer2 setStyle不起作用

在一个组件中,我试图瞄准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)

angular

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

Angular CLI production build placing duplicates of all my fonts in the root of my dist directory. Can this be avoided?

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 …

fonts command-line-interface angular

8
推荐指数
2
解决办法
4829
查看次数

Angular 2激活路线

也许我错过了什么?

在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)

任何帮助都非常感谢.

router angular

6
推荐指数
1
解决办法
4898
查看次数

要么我错误地使用了 Angular Renerer2,要么它坏了。任何人都可以弄清楚吗?

使用普通的旧 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)

renderer angular

6
推荐指数
1
解决办法
2536
查看次数

如何从 JavaScript (Angular 2/4) 中的授权标头中检索承载令牌?

在 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)

javascript header jwt angular

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

我如何才能正确地消除 Firebase 云功能的执行

我有一个 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)

javascript firebase google-cloud-functions debounce

5
推荐指数
1
解决办法
1328
查看次数

我如何编写一个 NgRx 8 Effect 来触发一个 Promise 的动作

我正在努力掌握 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?

有没有更好的方法?

asynchronous promise observable ngrx angular

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

使用打字稿在 Firebase Cloud 函数内动态导入类的正确方法是什么?

在 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)

node.js firebase typescript google-cloud-functions

2
推荐指数
1
解决办法
962
查看次数

在javascript中2个对象之间返回匹配元素数组的最有效方法是什么?

在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)

javascript object

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