小编Dhy*_*yey的帖子

如何将2个参数传递给EventEmitter angular2

我在我的组件中有一个EventEmitter但我无法编译因为返回此错误:"提供的参数与调用目标的任何签名都不匹配"

我的组件:

@Output() addModel = new EventEmitter<any>();

saveModel($event, make, name) {
    this.addModel.emit(make, name);
}
Run Code Online (Sandbox Code Playgroud)

如果我删除其中一个参数this.addModel.emit()工作,但是,我可以传递2个参数以及如何传递给我的eventEmitter?

我也尝试过:

@Output() addModel = new EventEmitter<any,any>();
Run Code Online (Sandbox Code Playgroud)

但它不起作用

eventemitter angular

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

Angular 2中的不纯管道(纯=假)对我的表现有害吗?

我有一个翻译管道,它接受一个字符串作为键,并从字典中返回翻译的字符串.管道看起来像这样:

import {Pipe, PipeTransform} from 'angular2/core';
import {TranslateService} from './translate.service';

@Pipe({
    name: 'translate',
    pure: false
})
export class TranslatePipe implements PipeTransform {

    constructor(private _translateService : TranslateService) {
    }
    transform(key: string): any {
        var translatedText = this._translateService.resources[key];
        if (translatedText)
            return translatedText;
        return key;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在我的模板中使用管道,如下所示:

<div>{{'login_EnterNewPassword'|translate}}</div>
Run Code Online (Sandbox Code Playgroud)

哪个将在我的HTML中呈现如下:

<div>Please enter a new password</div>
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好!

TranslatePipe依赖于TranslateService,它包含一个名为resources的字典,其中包含当前语言的翻译.TranslateService的资源加载了对服务器的ajax http调用,如果用户选择其他语言,它可以在后台重新加载.

因为我需要我的UI在发生这种情况时更新所有文本,所以我将管道的pure属性设置为false.

一切都很完美,但事实是,管道经常被执行,因为它是不纯的.如果用户输入10个字符的密码,则每次按键和键入时都会开始更改跟踪,并且对于页面上所有不同的翻译文本,管道将被执行几次.

主要问题是:这是一件坏事吗,它对整体表现有多大的负面影响???

或者是否有另一种强制角度来重新评估所有需求的方法,例如只有当语言改变时?

typescript angular2-directives angular

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

Angular4:jQuery和angular2-materialize在路由导航后不起作用

用angular-cli创建了一个角度4项目.在angular-cli.json文件中导入css和js.

"styles": [
    "../node_modules/materialize-css/dist/css/materialize.css",
    "styles.css"
],
"scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/hammerjs/hammer.js",
    "../node_modules/materialize-css/dist/js/materialize.js",
    "../src/assets/js/init.js"
],
Run Code Online (Sandbox Code Playgroud)

init.js具有以下功能

(function($) {
    $(function() {
        $('.slider').slider();
        $('.button-collapse').sideNav();
        $('.carousel').carousel();
        // $('.carousel.carousel-slider').carousel({fullWidth: true});
        $('.carousel').carousel({
            dist: 0,
            shift: 0,
            padding: 20,
        });

    }); // end of document ready
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

在app.module.ts中导入MaterializeModule从'angular2-materialize'导入{MaterializeModule};

当我们第一次登陆页面或刷新时,滑块按预期工作.

问题:当我们使用router-link导航时,页面导航正确但javascript函数没有被调用.

从主页路由 <a routerLink="/blog/abc-1">Blog</a>

我试过:`blog.component.ts

import { Component, OnInit } from '@angular/core';
import { MaterializeModule } from 'angular2-materialize';

import * as $ from 'jquery';

import * as Materialize from 'materialize-css';


declare let Materialize : any;

@Component({
  selector: 'app-blog',
  templateUrl: …
Run Code Online (Sandbox Code Playgroud)

jquery materialize angular

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

如何使用Firebase隐形reCAPTCHA用于角度Web应用程序?

希望看到一个有效的例子.搜索了一下,似乎无法让它在本地工作.始终显示隐私条款徽标,用户必须与验证码进行互动.

这是我为加快速度而创建的一个codepen.

来自Firebase-Docs:

使用隐形reCAPTCHA

要使用不可见的reCAPTCHA,请创建一个RecaptchaVerifier对象,其size参数设置为不可见,指定提交登录表单的按钮的ID.

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', {
  'size': 'invisible',
  'callback': function(response) {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    onSignInSubmit();
  }
});
Run Code Online (Sandbox Code Playgroud)

基本上我在init的这个视图中有什么:

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('phone-sign-in-recaptcha', {
  'size': 'invisible',
  'callback': function(response) {
    // reCAPTCHA solved - will proceed with submit function
    console.log(response);
  },
  'expired-callback': function() {
    // Reset reCAPTCHA?
  }
});
Run Code Online (Sandbox Code Playgroud)
<form name="mobile" novalidate>
  <label class="item item-input">
    <i class="icon placeholder-icon"></i>
    <input type="tel" name="number" ng-model="$ctrl.user.mobile">
  </label>
  <button id="sign-in-button" ng-click="$ctrl.onSignInSubmit(user.mobile)"></button>
</form>
<div id="phone-sign-in-recaptcha"></div>
Run Code Online (Sandbox Code Playgroud)

这是在提交时调用的函数:

ctrl.onSignInSubmit = …
Run Code Online (Sandbox Code Playgroud)

angularjs firebase firebase-authentication

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

如何在paypal angular 4中调用onAuthorize内部的外部函数

在下面的代码中,我得到的Cannot read property 'http' of undefined是未定义的。如何在 onAuthorize 函数中调用外部自定义函数。

这是我获得帮助的链接https://developer.paypal.com/demo/checkout/#/pattern/client 您的任何帮助都将是可观的。

ngAfterViewInit(): void {
    const total = this.total_amount;
    const selected_package = this.selected_package.name;
    this.loadExternalScript('https://www.paypalobjects.com/api/checkout.js').then(() => {
        paypal.Button.render({
            env: 'sandbox',
            client: {
                production: '',
                sandbox: 'XXXXXXXXXXXXXXXXXXXXXXX'
            },
            commit: true,
            payment: function (data, actions) {
                return actions.payment.create({
                    payment: {
                        transactions: [
                            {
                                amount: { total: total, currency: 'USD' },
                                description: selected_package,
                            }
                        ]
                    }
                })
            },
            onAuthorize: function (data, actions) {
                return actions.payment.execute().then(function (payment) {
                    const formdata: FormData = new FormData; …
Run Code Online (Sandbox Code Playgroud)

paypal angular

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

当前组件中发生事件时调用同级组件中的函数

我的应用程序有一个父组件和两个兄弟组件。

<feed>
 <status></status>
 <post></post>
</feed>
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,当我在基本上是文本字段的状态组件中写一些东西并提交时,我应该将该数据传递给 post 组件并调用 post 组件中的另一个函数来更新它的视图。但我不知道如何实现这一点。任何帮助将不胜感激。

angular-components angular

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

从 ngFor angular2 跳过相同的值

我有这样的 json 响应

杰森:

{
    "resultCode": 1,
    "resultData": {
        "Optionals": [

            {
                "Help": "Optionals",
                "OptionalsFor": "Hotel",
                "EventType": "Success",
                "msg": "Optionals",
                "Title": "Additional Services - For HOTEL-0-0-101",
                "Inclusions": "0",
                "City": "Phuket",
                "Quotcode": "Q-INQ-09-2016-0000001/001",
                "Inquirycode": "INQ-09-2016-0000001",
                "Corporate": 15,
                "Forquantityname": "Infant",
                "TotalBasicCurrencyRate": 0,
                "BasicCurrency": "CURRENCY-0-0-1",
                "CurrencyName": "USD",
                "Quantitytext": "Per Person Infant"
            }, {
                "Help": "Optionals",
                "OptionalsFor": "Hotel",
                "EventType": "Success",
                "msg": "Optionals",
                "Title": "Additional Services - For HOTEL-0-0-101",
                "Inclusions": "0",
                "City": "Phuket",
                "Quotcode": "Q-INQ-09-2016-0000001/001",
                "Inquirycode": "INQ-09-2016-0000001",
                "Corporate": 15,
                "Forquantityname": "EBA",
                "TotalBasicCurrencyRate": 502,
                "BasicCurrency": "CURRENCY-0-0-1", …
Run Code Online (Sandbox Code Playgroud)

typescript ngfor angular

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

ngFor:在ng-container中循环时,奇数/偶数行的颜色不同

我有一张桌子,我想在其中为奇数行和偶数行提供不同的背景色。通常,您可以为此使用oddeven变量。但是,我现在在内建立表行,ng-container这样我可以有条件地在每次迭代中创建一个或多个行。在这种情况下,每次迭代都会根据变量创建1或2行。

<ng-container *ngFor="let detailof data.details; let odd = odd;">
    <tr [ngClass]="{ 'k-alt': odd}">
        <td>
            {{ detail.number1 }}
        </td>
        <td>
            {{ detail.number2 }}
        </td>
        <td>
            {{ detail.number3 }}
        </td>
    </tr>

    <tr *ngIf="detail.conditionalVariable" [ngClass]="{ 'k-alt': odd}">
        <td></td>
        <td>{{ detail.conditionalVariable }}</td>
        <td></td>

    </tr>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

如您所见,每次迭代都会使行被标记为不同的背景,而不是每行本身都被标记,因为*ngForng-container元素中的声明了奇数变量。

ng-container与条件行一起使用时,是否可以为每一行赋予不同的背景色?

angular

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