2015-12-16 22 views
3

我有以下指令:是否可以鏈接指令作用域(例如obj.prop)?

template: '<form novalidate class="form-inline" ng-submit="submit($event, building)">' + 
     '<div class="form-group">' + 
     '<label class="form-control-static">{{label}}</label>' + 
     '</div>' + 
     '<div class="form-group">' + 
     '<input name="input" class="form-control" type="text" ng-model="model" />' + 
     '</div>' + 
     '<input class="btn btn-default" type="submit" value="Submit" />' + 
     '</form>', 
     scope: { 
     label: "@", 
     building: "=", 
     model: "=", 
     //type: "=", 
     }, 

現在我必須寫這樣的事情在HTML:

<building-field label="name" building="building" model="building.name"></building-field> 

我想簡單地將它通過只需要添加buildinglabel(然後把它們放在一起指令ng-model="building.name內):

<building-field label="name" building="building"></building-field> 

在p問題是,我不知道如何通過兩個指令範圍,並將它們作爲obj.prop。這個怎麼做?

回答

4

你沒有什麼特別的事情要做,obj.prop被支持。在您的模板:

<input name="input" class="form-control" type="text" ng-model="building[label]" /> 

作爲一個側面說明,你是一個插值(類型@)結合label。這意味着,您將始終擁有中的字符串"name"。如果你想真正合格name值,則需要使用雙大括號:

<building-field label="{{name}}" building="building"></building-field> 
+0

當我做'NG-模型=「building.label」'輸入不顯示了。我認爲這是因爲標籤使用'@'而建築使用'='。我希望'obj'和'prop'的值來自'building'和'label'。 – alexchenco

+0

@alexchenco明白了,我更新了我的答案。你想要的是'ng-model =「建築[標籤]」' – floribon

+0

它工作!所以方括號使得插值的範圍顯示在屬性中? – alexchenco

相關問題