我有以下指令:
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>
我只想简单地添加building
和label
(然后将它们放在指令ng-model="building.name
中):
<building-field label="name" building="building"></building-field>
问题是,我不知道如何传递两个指令范围,并将它们视为obj.prop
。怎么做?
答案 0 :(得分:4)
您没有任何特殊要做,obj.prop
受到支持。在您的模板中:
<input name="input" class="form-control" type="text" ng-model="building[label]" />
作为旁注,您使用插值绑定label
(类型@
)。这意味着,您将始终在"name"
中拥有字符串scope.label
。如果要实际传递name
的值,则需要使用双花括号:
<building-field label="{{name}}" building="building"></building-field>