标签: angular2-databinding

Angular HTML绑定

我正在写一个Angular应用程序,{{myVal}}我想要显示一个响应.

我怎么做?如果我只是使用绑定语法,innerHTML它会编码所有div字符(当然).

我需要以某种方式将a的内部html绑定{{myVal}}到变量值.

angular2-template angular2-databinding angular

756
推荐指数
11
解决办法
46万
查看次数

ExpressionChangedAfterItHasBeenCheckedError解释

请向我解释为什么我一直收到这个错误: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.

显然,我只是在开发模式下获得它,它不会在我的生产版本中发生,但它非常烦人,而我根本不理解在我的开发环境中出现错误的好处 - 不会出现在prod上 - - 可能是因为我缺乏理解.

通常,修复很容易,我只是将错误导致代码包装在setTimeout中,如下所示:

setTimeout(()=> {
    this.isLoading = true;
}, 0);
Run Code Online (Sandbox Code Playgroud)

或者使用如下构造函数强制检测更改constructor(private cd: ChangeDetectorRef) {}::

this.isLoading = true;
this.cd.detectChanges();
Run Code Online (Sandbox Code Playgroud)

但为什么我经常遇到这个错误?我想了解它,以便将来可以避免这些hacky修复.

angular2-changedetection angular2-databinding angular

243
推荐指数
18
解决办法
15万
查看次数

性能 - 是否应该避免双向数据绑定?

抱歉,如果问题太基本。

我想知道是否应该避免在系统中进行双向数据绑定。我可以在提交表单时捕获表单的值,而无需使用两种方式的数据绑定。

我的问题是双向数据绑定是否实际上消耗了太多内存。我应该停止使用它吗?

angular2-databinding angular

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

使用模板插值多次调用函数?

对不起基本问题,我试图用基本的例子来理解angular2流.

import { Component } from '@angular/core';

@Component({
    selector:'my-app',
    template:'Test {{ getVal() }}'
})

export class AppComponent{ 
    getVal():void{
        console.log("demo text")
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此示例后,"演示文本"在控制台中可见4次,为什么会这样?谢谢.

angular2-template angular2-databinding angular

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

角度-将组件方法绑定到DOM目标属性是否是错误的做法?

说,我有一个组件,其用法如下:

 <health-renderer
      [health]="getHealth()"
      [label]="label">
 <health-renderer>
Run Code Online (Sandbox Code Playgroud)

https://angular.io/guide/template-syntax读取与数据绑定相关的部分后,似乎我设置目标组件属性的方式health是错误的,因为所使用的模板表达式getHealth()是一种方法。方法绑定应该仅通过事件完成,而不是属性。换句话说,模板表达式(位于右侧的东西=)必须是模板变量,模板引用变量或组件/指令/元素属性。

如果[target]="methodCall()"做绑定的方法错误,那么为什么Angular会允许呢?如果这是进行绑定的正确方法,那么我在上一段中给出的理解是错误的吗?

另外,我该如何修改代码以反映以下方面的正确内容:

  1. 显示当前的健康状况,例如进度条
  2. 自动调用getHealth(): integer,其中包含用于计算运行状况的业务逻辑。0不会在健康进度条上显示任何内容。100将填满进度条。

最后,我注意到每次鼠标移动或单击时,getHealth()都会被无故调用10-20次。由于Angular的这种变化检测行为,将方法绑定到目标属性可能不是一个好习惯吗?

angular2-changedetection angular2-databinding angular

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

如何将数据从父组件传递到子组件?

我在子组件中有这个属性:

@Input() submitButtonDisabled: boolean;
Run Code Online (Sandbox Code Playgroud)

在我的父组件的模板中,我使用插值通过属性绑定设置它:

<my-child-component
  [submitButtonDisabled]="{{disableSubmitButton()}}">
</my-child-component>
Run Code Online (Sandbox Code Playgroud)

子组件模板以submitButtonDisabled这种方式读取其 属性:

<button id="btSubmit" type="submit" (click)="submit()" 
  [disabled]="submitButtonDisabled">Ok</button>
Run Code Online (Sandbox Code Playgroud)

调试我的打字稿代码我看到属性绑定工作正常,但无论如何,提交按钮都会被禁用 disableSubmitButton返回(布尔值).似乎组件在绑定发生之前呈现.

这有意义吗?我的错误在哪里?

参考:Angular 2 - 组件通信

typescript angular2-components angular2-databinding angular

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

Angular2动态按钮,一次只能选择一个

我正在尝试创建以下UI/UX按钮:
.. [2015] [2016] [2017]

默认情况下,当前年份(在撰写时,2017年)被"选中",当用户点击"2015"时,应取消选择"2017"和"2016"(这些按钮是"互斥的")

这些按钮是从外部数据源生成的,该数据源为我提供了多年的数据:

<button *ngFor="let year of styles.years"  type="button" name="button" class="btn btn-default" id="{{year.year}}">
  {{year.year}}
</button>
Run Code Online (Sandbox Code Playgroud)

如何创建一个按钮系统,其中一个按钮被"自动选择",当选择"其他"按钮时,它会取消选择主动选择的按钮,并将现在单击的按钮设置为"已选择"?

javascript angular2-template angular2-databinding angular

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

Angular 2:简单 *ngFor 不起作用

我的里面有这个app/component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <ul>
      <li *ngFor="let course of courses">
        {{ course }}
      </li>
    </ul>
  `,
  styleUrls: ['./app.component.css']
})

export class AppComponent {
  course = ['Course 1', 'Course 2', 'Course 3'];
}
Run Code Online (Sandbox Code Playgroud)

在我的 app.module.ts 中,我还导入了必要的东西

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    CommonModule
  ],
  providers: [], …
Run Code Online (Sandbox Code Playgroud)

angular-ng angular2-databinding angular

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