[Angular 2] Exposing component properties to the template

Showing you how you can expose properties on your Controller to access them using #refs inside of your template.

 

// letterSelect.ts

import {Component, View, FORM_DIRECTIVES, NgFor} from 'angular2/angular2';

@Component({
    selector: 'letter-select'
})
@View({
    directives: [NgFor,FORM_DIRECTIVES],
    template: `
        <select [(ng-model)]="selectedLetter">
            <option *ng-for="#letter of letters">{{letter}}</option>
        </select>
    `
})

export class LetterSelect {
    letters: string[] = ['e', 's', 'w'];
    selectedLetter: string = 'e';
    constructor() {

    }
}

 

todoList.ts

import {Component, View, NgFor, FORM_DIRECTIVES} from 'angular2/angular2';
import {TodoService} from './todoService';
import {TodoItemRender} from './todoItemRender';
import {StartsWith} from './startsWith';
import {LetterSelect} from './letterSelect';

@Component({
    selector: 'todo-list'
})
@View({
    pipes: [StartsWith],
    directives: [NgFor, TodoItemRender, FORM_DIRECTIVES, LetterSelect],
    template: `
          <div>
                <todo-item-render
                    *ng-for="#todo of todoService.todos | startsWith:'title':letterSelect.selectedLetter"
                    [todoinput]="todo"
                >
                </todo-item-render>
                <letter-select #letter-select></letter-select>
          </div>
    `
})

export class TodoList{
    constructor(
        public todoService:TodoService
    ){

    }
}

 

posted @ 2015-11-01 03:33  Zhentiw  阅读(311)  评论(0编辑  收藏  举报