2017-06-12 27 views
0

我有一個簡單的使用案例 - 我有一個豐富的對象模型,我在AngularDart應用程序中使用,並且我想要一個組件向我顯示模型的其中一個的當前狀態字段和我想在選擇更改時調用模型上的方法(最終將更新綁定到的字段)。裝訂材料 - 選擇我的模型

事情是這樣的:

APP-component.dart:

@Component(
    selector: 'my-app', 
    styleUrls: const ['app_component.css'], 
    templateUrl: 'app_component.html', 
    directives: const [CORE_DIRECTIVES, materialDirectives], 
    providers: const [materialProviders], 
) 
class AppComponent { 
    Model myModel = new MyModel(); 
    SelectionModel<String> selectModel = new SelectionModel(); 
} 

APP-component.html:

<material-dropdown-select 
    [options]='myModel.listOfOptions' 
    [buttonText]='myModel.currentOption' 
    [selection]='selectModel'> 
    <!-- call myModel.changeOption(selectedOption) when selection changes --> 
</material-dropdown-select> 

回答

1
selectModel.selectionChanges.listen(update); 

void update(List<SelectionChangeRecord> record) { 
    ... 
} 
0

連接二傳手您selectModel成員,並運行代碼在那裏以及更新「真正的」價值(私人會員)。當然你需要匹配的getter。

+0

我還是有點困惑......誰打電話給二傳手? – mjeffw

+0

當您選擇新值時,該框架會執行此操作。 –

+0

我知道我可能很密集,但是像這樣? SelectionModel _selectModel = new SelectionModel(); SelectionModel get selectModel {return _selectModel; } set selectModel(SelectionModel model){ _selectModel = model; _selectModel.selectionChanges.listen(updateSelection); } 如果是這樣,它不工作。響應於更改選擇,setter不會被調用。 – mjeffw