2016-02-19 3 views
1

Примечание: Я хочу знать, как правильно или что-то еще
_____________________________________________________________________
ANGULAR1

В angular1, мы могли бы сделать что-то, как показано ниже ,Angular2/Машинопись объект и свойство связывания с шаблоном

$scope.user={}; 
$scope.user.name="micronyks"; 
$scope.user.age="27"; 

или непосредственно как

$scope.user={name:"micronyks",age:"27"} 

Связывание шаблона выглядит,

<div>My name is {{user.name}} & I'm {{user.age}} year(s) old. </div> 


______________________________________________________________________
ANGULAR2

В angular2 с Машинопись,

models.ts

export class LoginModel() 
{ 
    private name:string; 
    private age:number; 
} 

app.ts

import {LoginModel} from '../models.ts'; 

user=new LoginModel() 
constructor() 
{ 
    this.user.name="micronyks" 
    this.user.age="27" 
} 

app.html

<div>My name is {{user.name}} & I'm {{user.age}} year(s) old. </div>

Можем ли мы непосредственно создать объект со свойством (х) со значениями?

Я знаю TypeScript в основном касается type.

Но хотелось бы знать, есть ли что-то еще, и если кто-то знает что-то вглубь.

Если вы хотите, чтобы показать то, что вы можете использовать этот plunker: Plunker

+0

Не уверен, что вы просите? Вы хотите создать экземпляр 'LoginModel' типа' new LoginModel («micronyks», 27) '? –

+0

Нет, я знаю, что мы можем пойти с 'конструктором' класса LoginModel'. Как и в угловом1, мы можем сделать так, как показано, насколько это возможно (что-то похожее) в угловом2? – micronyks

+0

Вы можете показать разные способы, если это возможно. – micronyks

ответ

0

Вы можете использовать также использовать буквенные объекты в Angular2 как Angular1. Поскольку Angular2 можно использовать с TypeScript, вы можете использовать его сильные типы. Таким образом вы можете указать типы свойств и параметров. Проверки теперь не возможны, и это позволяет получить ошибки типа, если используются некорректные типы.

import {LoginModel} from '../models.ts'; 

export class Test { 
    user:LoginModel = new LoginModel() 

    constructor() { 
    this.user.name = 'micronyks'; 
    this.user.age = 27; 

    this.someMethod(this.user); 
    } 

    someMethod(user:LoginModel) { 
    // ... 
    } 
} 

Еще один момент связан с Dependency Injection, поскольку Angular2 может полагаться на тип, чтобы знать, какой экземпляр впрыснуть ... В противном случае вам нужно использовать @Inject.

В вашей среде IDE также есть удары. Поскольку вы можете иметь завершение, если вы определяете типы вместо типа или any.

На самом деле, это даже можно смешивать вещи:

interface INumbersOnly { 
    [key: string]: number; 
} 

var x: INumbersOnly = { 
    num: 1, // works fine 
    str: 'x' // will give a type error 
}; 

Так что я бы сказал, что вы свободны делать то, что вы хотите ;-)

Смотрите этот вопрос для более подробной информации:

+0

Очень приятно ... Спасибо за объяснение. – micronyks