是否可以链接指令范围(例如obj.prop)?

时间:2015-12-16 02:24:16

标签: javascript angularjs

我有以下指令:

  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>

问题是,我不知道如何传递两个指令范围,并将它们视为obj.prop。怎么做?

1 个答案:

答案 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>