2016-02-19 13 views
2

我現在正在學習angularjs2後angularjs1。我正在使用TypeScript變體。我發現一些括號和特殊字符被用於角度屬性。有哪一個人可以幫助我深入理解哪一個是用什麼理由用適當的例子。還請加與此相關的問題更多的特殊字符(如果我錯過任何。)用於AngularJS 2中的括號和特殊字符與TypeScript

[(ngModel)] 

(click) 

*ngIf 

ngRepeat="#hero in heros" 

回答

3

[(ngModel)]:

通常我們在Angular2使用該語法TWO WAY BINDING 。即我們從模板或從控制器進行更改,它反映了角度的變化。通常我們使用這個語法,如果我們必須在模板和控制器的同一側進行改變。

(click):

這是在Angular2中的事件綁定。 Angular2中有很多事件綁定。

* ngIf:

這個語法是這樣的CSS display: none/block凸狀部。但它不同於css的選擇器display,因爲根據Angular2的* ngIf不允許呈現 代碼的部分錯誤,即如果*ngIf='false'在任何div或任何html部分。角度不允許呈現該部分。而在CSS部分佔據一個空間。

ngRepeat = 「#主人公英雄」

這是角的1.x的語法,但在angular2 ngRepeat替換*ngFor。通常我們使用*ngFor來迭代數組以獲取列表數組中的所有項目,以避免 額外的代碼。這裏* ngFor在angular2 comnined兩個變量喜歡這裏......

*ngFor= '#hero of Heros' 

這裏#hero是一個局部變量和英雄是陣列超過whihc我們反覆循環的名稱。

+1

關於'#',請參閱'let'的更多信息@ http://stackoverflow.com/a/36976509/241296 – bvj

3

除了@PardeepJain的回答。

<my-comp [(someName)]="someExpression"> 

<my-comp [someName]="someExpression" (someNameChange)="someExpression=$event"> 

其中MyComp必須有一個input短形式和output

@Component({ 
    selector: 'my-comp', 
    inputs: ['someName'], 
    outputs: ['someNameChange']}) 
class MyComp { 
    someName:SomeType; 
    someNameChange:EventEmitter = new EventEmitter(); 
} 

或替代地等

@Component({ 
    selector: 'my-comp' 
}) 
class MyComp { 
    @Input() someName:SomeType; 
    @Output() someNameChange:EventEmitter = new EventEmitter(); 
} 

這適用於指令相同。