[Angular 2] Template property syntax

This lesson covers using the [input] syntax to change an element property such as “hidden” or “content-editable”. Using properties eliminates the need for Angular 1’s old directives such as ng-show and ng-hide as you’re now able to directly access any property on your element.

 todoService.ts
export class TodoModel{
    status: string = "started";
    constructor(
        public title: string = ""
    ){}

    toggle(): void{
        if(this.status === "started") this.status = "completed";
        else this.status = "started";
    }
}

todoList.ts

import {Component, View, NgFor} from 'angular2/angular2';
import {TodoService} from './todoService';

@Component({
    selector: 'todo-list'
})
@View({
    directives: [NgFor],
    template: `
          <div>
              <div *ng-for="#todo of todoService.todos">
                  <span [content-editable]="todo.status === 'started'">{{todo.title}}</span>
                  <button (click)="todo.toggle()">Toggle</button>
              </div>
          </div>
    `
})

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

    }
}
原文地址:https://www.cnblogs.com/Answer1215/p/4910173.html