这里最简单和完整的示例可以在这里找到:https://stackblitz.com/edit/angular-gbenfj
我们想要一个简单的组件,该组件根据绑定路径执行4件事:
我们想要这样的东西:
<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”角度框架代码获取实际的字符串。
任何帮助都会很棒!
答案 0 :(得分:0)
在您发表评论后,我做了stackblitz,可以根据您的要求做。缺点是您必须知道要使用哪些组件(在示例中为AppComponent
和HelloComponent
)才能注入它们。
但是这个开始应该给您一些内容。如有任何疑问,请随时提问!