zoukankan      html  css  js  c++  java
  • [Angular 2] Using the @Inject decorator

    TypeScript is used heavily as we build up our application, but TypeScript isn’t required. If you want to Inject a Service without using TypeScript, you’ll need to understand the @Inject decorator.

    main.ts:

    import {Component, provide} from 'angular2/core';
    import {bootstrap} from 'angular2/bootstrap';
    import {TodoService} from './TodoService';
    import {TodoInput} from './TodoInput';
    
    @Component({
        selector: 'app',
        directives: [TodoInput],
        template: `
            <todo-input></todo-input>
        `
    })
    
    class App {
        
    }
    
    // []: we can inject service which can be used for the whole app
    // use provide to inject service, when you don't want to use TypeScript
    bootstrap(App, [
       provide('whatever', {useClass: TodoService})
    ]);

    TodoInput.ts:

    import {Component, Inject} from 'angular2/core';
    import {TodoService} from './TodoService';
    
    @Component({
        selector: 'todo-input',
        template: `
            <div>
                <input #myInput type="text">
                <button (click)="onClick(myInput.value)">Click me</button>
            </div>
        `
    })
    
    export class TodoInput{
    
        // If you don't want to use TypeScript
        constructor(@Inject('whatever') public todoService){
    
        }
    
        onClick(todo: string){
           this.todoService.todos.push(todo);
            console.log(this.todoService.todos);
        }
    }

    TodoService.ts:

    import {Injectable} from 'angular2/core';
    @Injectable()  // If you don't want to use TypeScript
    export class TodoService{
        todos = [];
    }
  • 相关阅读:
    CSP-S 2020 游记
    USACO Mowing the Lawn
    洛谷 P1725 琪露诺
    浅谈单调队列
    浅谈单调栈
    洛谷 P1440 求m区间内的最小值
    POJ 2823 Sliding Window
    洛谷 P1901 发射站
    POJ 2796 Feel Good
    POJ 2559 Largest Rectangle in a Histogram
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5300004.html
Copyright © 2011-2022 走看看