我是Angular2的新手,我有一点问题:
在我的Login-Component-HTML中,我有两个复选框,我希望以双向数据绑定方式绑定到Login-Component-TypeScript.
这是HTML:
<div class="checkbox">
<label>
<input #saveUsername [(ngModel)]="saveUsername.selected" type="checkbox" data-toggle="toggle">Save username
</label>
</div>
Run Code Online (Sandbox Code Playgroud)
这是Component.ts:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Variables } from '../../services/variables';
@Component({
selector: 'login',
moduleId: module.id,
templateUrl: 'login.component.html',
styleUrls: ['login.component.css']
})
export class LoginComponent implements OnInit {
private saveUsername: boolean = true;
private autoLogin: boolean = true;
constructor(private router: Router, private variables: Variables) { }
ngOnInit() {
this.loginValid = false;
// Get user name from local storage …
Run Code Online (Sandbox Code Playgroud) 我对 Angular 4 有点问题。下面的错误被抛出
错误:ExpressionChangedAfterItHasBeenCheckedError:检查后表达式已更改。以前的值:'225px'。当前值:'-21150px'。
这是我的 html:
<div class="channelRow" *ngFor="let epgChannel of channelGroupEpg?.epgChannels">
<div class="epgChannelList">
{{epgChannel.channel.name}}
</div>
<template ngFor let-epgDate [ngForOf]="epgChannel.dates">
<div class="epgEntry"
*ngFor="let epgProgram of epgDate.programs"
[style.width]="getWidth(epgProgram, epgDate.date)"
(click)="selectProgram(epgProgram)"
data-toggle="modal"
data-target="#detailModal">
{{epgProgram.title}}
</div>
</template>
</div>
Run Code Online (Sandbox Code Playgroud)
这就是错误的来源:
getWidth(program: EPGProgram, date: Date) {
let min = this.helperService.getDurationByProgramInMinutes(program);
let startDate = new Date(program.start.getFullYear(), program.start.getMonth(), program.start.getDate(), 0, 0, 0, 0);
let stopDate = new Date(program.stop.getFullYear(), program.stop.getMonth(), program.stop.getDate(), 0, 0, 0, 0);
if (startDate.getTime() !== date.getTime()) {
let minNextDay = this.helperService.getMinutesToNextDay(program.start, date);
min = …
Run Code Online (Sandbox Code Playgroud) 我正在使用Angular2,并且有一个带有日期对象(〜1000)的数组。大多数日期对象具有完全相同的日期(例如2016_11_02;日期没有小时和分钟)。通常,数组中应该有大约10-20个不同的日期。
现在,我想过滤此数组并删除重复的日期。因此,最后数组中应该有大约10-20个Date-Objects。
这是我尝试的代码:
let uniqueArray = duplicatesArray.filter(function(elem, pos) {
return channelEPGDates.indexOf(elem) == pos;
});
console.log('unique: ' + uniqueArray.length);
Run Code Online (Sandbox Code Playgroud)
我知道这是不正确的,因为unique-Array具有与旧数组相同的长度。但是,如何在过滤器功能中比较日期本身呢?
非常感谢!
我写了一个angular2服务.服务应该 - 从另一个服务加载数据 - 使用数据 - 应该返回一个包含组件数据的Observable
所以我写了这个:
getTimers(): Observable<Array<Timer>> {
this.apiService.getTimers().
subscribe(
data => {
this.variables.setTimers(data.length);
let timers: Array<Timer> = this.formatter.formatTimers(data);
this.setOngoingTimers(timers);
return Observable.of(timers);
},
error => { return Observable.throw(error); });
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
A function whose declared type is neither 'void' nor 'any' must return a value.
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
angular ×4
arrays ×1
checkbox ×1
data-binding ×1
html ×1
javascript ×1
observable ×1
typescript ×1