小编Adr*_*rma的帖子

如何等待函数在角度2中完成执行?

下面是我的代码,我想要login()authenticated()函数等待getProfile()函数完成它的执行.我尝试了几种方式,比如承诺等,但我无法实现它.请建议我的解决方案.

import { Injectable }      from '@angular/core';
import { tokenNotExpired } from 'angular2-jwt';
import { myConfig }        from './auth.config';

// Avoid name not found warnings
declare var Auth0Lock: any;

@Injectable()
export class Auth {
  // Configure Auth0
  lock = new Auth0Lock(myConfig.clientID, myConfig.domain, {
    additionalSignUpFields: [{
      name: "address",                              // required
      placeholder: "enter your address",            // required
      icon: "https://example.com/address_icon.png", // optional
      validator: function(value) {                  // optional
        // only accept addresses with more than 10 chars
        return …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular-promise angular

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

带有搜索输入框和复选框的多重过滤 ngFor 列表

我有一个ngFor带有课程列表的可观察对象。此列表上方是一行复选框,选中/取消选中时可以成功过滤列表。我正在尝试添加一个输入框来搜索和过滤同一列表。因为复选框通过更新behaviour subject提供可观察到的课程来工作,所以我无法使过滤工作。我认为下面的代码会过滤并返回可观察的课程,并且它会在模板中自动更新。但它没有任何效果。我整理了一个Stackblitz。如何使用复选框和搜索输入框过滤列表?

textFilter(searchString: string) {
  console.log(searchString)
  return this.courses
  .pipe(map((courses) => courses.filter( course => 
     course.Name.toLowerCase().indexOf(searchString.toLowerCase()) !== -1))
  );
}
Run Code Online (Sandbox Code Playgroud)

rxjs angular

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

如何从子组件 Angular 7 将两个参数传递给父组件函数?

我有一个要求,我必须从子组件调用父组件函数。显而易见,我们可以使用@Output参数 withEventEmitter来实现这一点。但这里的挑战是父组件是这样的

func(param1,param2){
}
Run Code Online (Sandbox Code Playgroud)

我想从孩子那里调用这个方法,所以我使用了类似的方法。

@Output() childToParent = new EventEmitter<object>();

callParentMethod(){
this.childToParent.emit({param1:this.param1,param2:this.param2});
}
Run Code Online (Sandbox Code Playgroud)

它能够调用我见过的函数,但参数没有被传递。谁能建议我做错了什么或遗漏了什么?

angular-cli angular

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

仅在前端检查 WC()-&gt;session-&gt;has_session(),而不在 Rest-API 上检查

由于我想使用我的插件将项目添加到 woocommerce 购物车,我需要确保会话 cookie 已设置,并在尚未设置时设置 cookie。

这段代码对于前端来说工作得非常好:

add_action('woocommerce_init', 'force_non_logged_user_wc_session');

function force_non_logged_user_wc_session()
{

if (is_user_logged_in() || is_admin())
    return;

    if (!WC()->session->has_session()) {
    WC()->session->set_customer_session_cookie(true);
    }
Run Code Online (Sandbox Code Playgroud)

}

不幸的是,我的所有 REST-API 回调不再对访客起作用(REST-API 由 javascript 调用,不需要 WC 会话),但返回以下消息:

致命错误:未捕获错误:在 C:\Users....\wp-content\plugins........php:318 中对 null 调用成员函数 has_session()

问题的原因很可能是 WC 仅在前端页面加载会话处理程序。对于我的需求,这已经足够了,但我不知道如何仅在前端设置 cookie。我只能在标头中设置 cookie,但我如何知道这是来自前端还是 REST API 的请求?

我尝试通过以下检查来处理检查: if(did_action( 'wp_loaded' )) 并且我尝试将操作添加到其他操作挂钩中: wp_loaded并且init

php wordpress woocommerce

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

Angular 7两次调用asp.net webapi

我的angular 7应用程序出现性能问题。我正在使用angular 7作为客户端和c#。asp.net.webapi作为服务器代码。我注意到对webapi端点进行了两次调用,不确定为什么?我注意到的另一件事是,它最初显示7秒,之后显示1.7或1.8秒。为什么这样做

网络标签的屏幕截图1

在此处输入图片说明

网络标签的屏幕截图2

在此处输入图片说明

屏幕快照2中显示的图片也与第一次通话相同。我还看到了呼叫类型为xhr。这意味着什么

角组件服务调用

import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { TermsService } from '../services/terms.service';
import { FundClassesComponent } from './fundClasses/fundClasses.component';
import { TermsStateService } from '../services/terms-state.service';
import { Router, ActivatedRoute } from '@angular/router';
import { FundStrategySelectorComponent } from '../directives/managerStrategySelector';
import { LegalFundClassesComponent } from './fundClasses/legalFundClasses.component';


@Component({
    selector: 'mgr-terms',
    templateUrl: 'terms.component.html'
})


export class TermsComponent implements OnInit {

    private Error: string;
    public TermDetails: any;
    private _ManagerStrategyId: number;
    FilteredClasses: any;
    OriginalList: any; …
Run Code Online (Sandbox Code Playgroud)

angular

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

Vuetify.js:单击时如何更改 v-btn 组件的颜色

我想在单击时更改按钮的颜色。我有两个按钮。当一个按钮被点击时,它分配变量“host”,当另一个按钮被点击时,它分配变量“guest”。

<v-btn color="primary" fab large
 @click="type='host'">
   <v-icon>home</v-icon><br/>Host
</v-btn>

<v-btn color="secondary" fab large
 @click="type='guest'">
   <v-icon>person</v-icon><br/>Request
</v-btn>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

  1. 冒号速记
<v-btn v-bind:style="{ color: type==='host' ? 'secondary' : 'primary' }>
<v-icon>home</v-icon>
HOST
</v-btn>

AND

<v-btn v-bind:color="{ type==='guest' ? 'secondary' : 'primary' }>   
<v-icon>person</v-icon><br/>
Request
</v-btn>
Run Code Online (Sandbox Code Playgroud)

但两者都不起作用

  1. v-btn-toggle 没有完成工作并且没有我们想要的样式(这是一个圆圈)

我是 vue.js 的新手,不知道如何调试。任何帮助将不胜感激!

vue.js vuetify.js

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

Angular 6 - 检测应用程序另一部分中的变量何时发生变化

我正在使用Ngx-webstoragehttps://www.npmjs.com/package/ngx-webstorage)注释将本地和会话存储中的属性绑定到打字稿变量。

在我的应用程序组件中,背景由这些属性之一定义,称为JuegoDatos(数据集)。每个 JuegoDatos 都有一个文件 ID,它定义了它的背景图像。

我想要的是,当 JuegoDatos 更改(sessionStorage 属性,绑定到打字稿变量)检测到它时,我可以获取文件的新 id 并更新背景。

我通过使用间隔使其发挥作用。


@SessionStorage(GlobalVariable.JUEGO_DATOS_KEY) private juegoDatosActual: JuegoDatos;

    private idImagen: number;
    private urlImagenJuegoDatos: SafeResourceUrl;

// Some code

ngOnInit() {
        setInterval(() => {
            if (this.juegoDatosActual == null || this.juegoDatosActual.imagenFondo == null) {
                return;
            }
            if (this.idImagen === this.juegoDatosActual.imagenFondo.id) {
                return;
            }

            this.idImagen = this.juegoDatosActual.imagenFondo.id;
            this.reloadImagen();
        }, 1000);
    }

Run Code Online (Sandbox Code Playgroud)

但它看起来有点老套而且非常丑陋。背景也会闪烁。

angular

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

Angular 将数据传递给共享模块

我正在编写代码以从 API 获取会员列表并将其显示在会员卡列表(模块 A)中。会员卡是一个共享模块(Module B)。将模块 B 导入模块 A 并显示为列表是没有问题的(仅使用硬编码的 html)。但是我需要在循环中将每个成员数据从模块 A 传递到模块 B,以便在会员卡中显示数据。请帮助我了解如何将数据传递到模块 A 到模块 B

在此处输入图片说明

我遵循了这个参考https://medium.com/frontend-fun/angular-4-shared-modules-18ac50f24852以使用共享会员卡模块创建会员卡列表。

在我的模块 AI 中导入了会员卡模块

 import { MemberCardModule} from 'app/shared/member-card/member-card.module';
Run Code Online (Sandbox Code Playgroud)
  declarations: [MemberListComponent],
  imports: [
    CommonModule,
    RouterModule.forChild(routes),
    MemberCardModule,
...... 
Run Code Online (Sandbox Code Playgroud)

在component.html(模块A)下面是会员卡循环的代码

<app-member-card *ngFor="let member of members"></app-member-card>
Run Code Online (Sandbox Code Playgroud)

** 我在 component.ts(模块 A)中有成员数组

在循环过程中,我需要将每个会员数据传递给模块 B 中的会员卡模板。

请帮忙

angular

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

Angular 4 在 &lt;td&gt; 中调用函数

我有这段代码:

人员列表组件.html

<tr *ngFor="let person of personService.getPersons()">
      <td (onShow)="getCountry(person)">{{person.name}}</td>
      <td>{{country}}
</tr
Run Code Online (Sandbox Code Playgroud)

personListComponent.ts

<tr *ngFor="let person of personService.getPersons()">
      <td (onShow)="getCountry(person)">{{person.name}}</td>
      <td>{{country}}
</tr
Run Code Online (Sandbox Code Playgroud)

我想从这个人那里得到国家并将它显示在表格中,但是(onShow)从不调用getCountry()函数。有没有办法从<td>元素内部调用这个函数?或者有什么方法可以显示国家?

html typescript angular

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

如何让component.ts在加载模板之前加载所有响应?

我想从component.ts文件中的函数加载所有响应,然后让模板查看该数据。

我的函数中有3个函数,ngOnInit这些响应使我可以将其加载到模板中。

    ngOnInit() {
        this.getSong();
        this.getAllSongs();
        this.getProjects();
    }

    // get Latest Song
    getSong() {
        this.amen.getSongs(this.singleSongParam).subscribe(
            (response) => {
                this.handleSongResponse(response);
            },
            (error) => {
                this.error = error.error.errors;
            }
        );
    }

    getAllSongs() {
        this.amen.getSongs(this.allSongsParam).subscribe(
            (response) => {
                this.handleSongsResponse(response);
            },
            (error) => {
                this.error = error.error.errors;
            }
        );
    }

    getProjects() {
        this.amen.getProjects(this.projectsParam).subscribe(
            (response) => {
                this.handleProjectsResponse(response);
            },
            (error) => {
                this.error = error.error.errors;
            }
        );
    }
Run Code Online (Sandbox Code Playgroud)

也许我async/await在订阅中使用但不知道如何使用...如果有任何方法可以帮助您。

angular

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