Typescript: ленивая запись aka list из PHP

Если у нас есть функция, возвращающая два значения в формате массива return [from, to];, то мы можем использовать ленивую запись

let [from, to] = this.getSelectedDateRange();

а если нужен только первый или только второй

let [, to] = this.getSelectedDateRange();
let [from] = this.getSelectedDateRange();

Angular2 и вызов функции объекта внутри цикла в шаблоне

Сама задача несложная — раз у нас красивые структуры = объекты = наши экземпляры данных, то почему бы нам не использовать это и не заменять сложные шаблоны в выводе функциями объекта (кратко забегая наперед скажу — лучше декораторы!, но у меня получилось)

export class Record {
	id:string;
	author:string;
	date:string;
	title:string;
	text:string;
	toTestAgain() {
		return '13444';
	}
}
export class SecondResponse {
	data:Record[];
	total:number;
	code:number;
	toTest() {
		return '134';
	}
}

Продолжить чтение…


Angular2 релиз и обновление примера к текущей версии

В связи с выходом стабильной версии обновим наш пример (Репозиторий примера BlogDemo) и вылечим мелкие ошибочки

Ошибка bootstrap

main.js до обновления

import {bootstrap}    from '@angular/platform-browser-dynamic';
 
import {AppComponent} from './app.component';
import {SecondComponent} from './second/second.component';
 
bootstrap(AppComponent);
bootstrap(SecondComponent);

main.js после обновления

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
 
import {AppModule} from './app.module';
import {SecondModule} from './second/second.module';
 
platformBrowserDynamic().bootstrapModule(AppModule);
platformBrowserDynamic().bootstrapModule(SecondModule);

Внедрение HttpModule вместо HTTP_PROVIDERS

После обновления также будет ошибка что не найден HTTP_PROVIDERS — его больше и нет) Вместо этого используйте импорт HttpModule

app.module

import {NgModule} from '@angular/core';
import {HttpModule} from '@angular/http';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
 
@NgModule({
	imports: [HttpModule, BrowserModule],
	declarations: [AppComponent],
	bootstrap: [AppComponent]
})
export class AppModule {}

Следующий импорт больше не нужен, как и провайдер, так что смело убирайте

import {HTTP_PROVIDERS} from '@angular/http';
@Component({
	providers: [HTTP_PROVIDERS]
})

Angular2: наследование компонентов

Внезапно, совсем в другом проекте, мне нужно было сделать наследование компонентов. Так как я не очень люблю катпастить и потом пять раз бегать по коду и менять схожие функции. Но другой проект — уже большой и сложный, поэтому в упрощенном варианте на текущем демопроекте и будет показано как собственно по-быстрому отнаследовать схожие функции и не заниматься мутотенью потом. Репозиторий примера BlogDemo.

Продолжить чтение…