如何获取Angular组件的绑定路径字符串?

时间:2018-12-05 11:57:43

标签: angular angular-directive angular-components

这里最简单和完整的示例可以在这里找到:https://stackblitz.com/edit/angular-gbenfj

我们想要一个简单的组件,该组件根据绑定路径执行4件事:

  1. 在输入中显示值
  2. 添加i18n
  3. 不允许用户查看该字段时隐藏安全性
  4. model.us => model.user上的代码完成...

我们想要这样的东西:

<app-input [value]="model.user.name"></qcr-input>

在后台执行的操作

<div class="form-group form-material floating" *permission="requiredAuthority">
  <input type="text" class="form-control" [value]="value" name="{{value}}"/>
  <label class="floating-label">{{label}}</label>
</div>

* permission是一个指令,如果登录的用户没有该权限,则该指令不会呈现组件。

export class InputComponent implements OnInit {

  @Input()
  public value: string;

  public label: string;

  public requiredReadAuthority: string;

  ngOnInit() {
    let path = // HOW TO GET model.user.name here to be able to do the rest generate requiredAuthority 'model.user.name__READ' AND ge the label for key 'model.user.name'?
    // path should be 'model.user.name' here.
    this.requiredReadAuthority = this.path + '__READ';
    this.label = this.someServiceToGeti18n(this.path);
  }
}

我认为可以使用伪指令来完成此操作,但是关于它的信息并不多,因为它围绕着根据指令中的“ model.user.name”角度框架代码获取实际的字符串。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

在您发表评论后,我做了stackblitz,可以根据您的要求做。缺点是您必须知道要使用哪些组件(在示例中为AppComponentHelloComponent)才能注入它们。

但是这个开始应该给您一些内容。如有任何疑问,请随时提问!