2014-01-12 83 views
2

是否可以將AngularDart ngComponent綁定到模型,然後從組件中操作該模型並查看ngComponent外部更改之外的更改。例如AngularDart組件和模型綁定

<myawsomecomponent ng-model="{{name}}"></myawesomecomponent> 
<label>{{name}}</label> 

myAwesomeComponent會做一些一種魔力(例如大寫所有字母)的模型,並應在組件的外面被反射。

在AngularDart中做這樣的事情的最佳方式是什麼?

回答

4

偉大的問題!要完成此任務,您需要將NgModel指令注入myAwesomeComponent。然後,您將可以通過NgModel.modelValue獲取並設置模型。

@NgComponent(
    selector: 'myawesomecomponent', 
    ... 
) 
class MyAwesomeComponent { 
    NgModel _ngModel; 
    MyAwesomeComponent(this._ngModel); 

    ... 
} 

通過添加ng-model屬性的元素,角創建NgModel指令。注射系統將爲您提供NgModel您的特定元素。

看看其他NgModel指令是怎麼寫的,如InputCheckboxDirective

+0

感謝您的答覆。這太酷了! – markovuksanovic

+0

另一個問題是,在查看代碼之後,我在NgModel中看到了modelValue和viewValue屬性。有什麼不同?我也見過inputCheckbox這個範圍,$ apply被調用onInputChange。這是什麼原因?換句話說,我什麼時候需要調用scope。$ apply?謝謝。 – markovuksanovic

+2

一旦實現了轉換器,modelValue和viewValue將會不同(例如,viewValue可能是「4388 1200 6000 5344」,其中modelValue可能是「4388120060005344」)範圍的引用$ apply是cruft;它沒有價值,應該被刪除。 (PR歡迎!) –