是否可以链接指令作用域(例如obj.prop)

Is it possible to chain directive scopes (e.g. obj.prop)?

本文关键字:例如 obj prop 作用域 链接 指令 是否      更新时间:2023-09-26

我有以下指令:

  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。如何做到这一点?

您没有什么特别的事情要做,支持obj.prop。在您的模板中:

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

附带说明一下,您正在使用插值绑定label(类型为@)。这意味着按原样,scope.label中始终有字符串"name"。如果要实际传递name的值,则需要使用双花括号:

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