2015-07-21 60 views
0

我在打字稿定義的以下接口:是否有可能在Angular控制器方法中綁定整個對象?

interface Person { 
    Id: number; 
    FirstName: string; 
    LastName: string; 
    Age: number; 
} 

我有一個.html部分包含一個HTML form元件上的角ng-submit="submit()"指令。下面是來自form內的例子元素:

<input id="FirstName" name="FirstName" type="text" class="form-control" ng-model="FirstName" placeholder="Enter First Name" /> 

我想有是透過地圖形式值以下調用對象參數上submit呼叫象下面這樣:

$scope.submit = (person: MyApp.Models.Person) => { 
    //Access person values 
} 

問題是,在調用submit()時檢查person值時,它是undefined並且未填充。

我想知道是否有可能從form元素中自動使用多個<input>表單值並綁定到TypeScript在submit()方法中已知的對象參數?

答案可能是這是完全不可能,但我想知道我之前手動必須得到各ng-model值,從我submit()函數內水合物Person實例。

+1

黃金法則....在ng-model(或[]) – charlietfl

回答

1

這是可能的。和some say it is even a recommended strategy

而不是直接在表單元素(ng-model=FirstName)上使用person對象的成員,請使用點符號與人物對象(ng-model=person.FirstName)。例如您的範圍對象:

$scope.person: MyApp.Models.Person; 

,並在您的標記(注意您ng-model差):

<input id="FirstName" name="FirstName" type="text" class="form-control" ng-model="person.FirstName" placeholder="Enter First Name" /> 

現在,當你打電話給你submit功能,您可以把它person模型

ng-submit="submit(person)" 

and your submit function person parameter will have access to al l表單上定義的person對象的成員。

+0

中總是有一個點,而不僅僅是一個推薦的策略......在處理子範圍時它真的是「必須要做的」,因爲原始綁定被破壞 – charlietfl

+0

@charlietfl - 同意。 :) – sfletche

+0

太棒了!工作就像一個魅力:D – atconway

相關問題