2017-11-15 1 views
0

Ich habe einige Formulare, die nur von einigen Benutzern bearbeitet werden können. Andere Benutzer sollten es nur sehen können.Angular: Formularfelder schreibgeschützt

Derzeit überprüfe ich für jedes Formularsteuerelement in einem Formular Bedingung und zeige entweder ein Formularsteuerelement oder einen Text an. Etwas wie,

<div> 
    <input type="text" *ngIf="editable"> 
    <p *ngIf="!editable">{{value}}</p> 
</div> 

Dies scheint nicht ein eleganter Weg zu sein. Bitte schlagen Sie einen saubereren Weg vor, um dies zu erreichen, wie etwas auf der obersten Ebene zu tun.

+0

Warum können Sie nicht zwei verschiedene Ansichten machen (nur lesbar und editierbar) anstatt jede Steuerung separat Makel? – Zabavsky

Antwort

0

Ich denke, Sie sollten einen Blick auf die ng-disabled Richtlinie werfen. Dies sollte hier den Trick tun!

+0

Ihr Link ist für Angular 1.x und die Fragen Quelle ist Angular 2+. – tasos

+0

Meine schlechte srry. Die Antwort wurde hier gegeben: https://stackoverflow.com/questions/37159827/is-there-any-alternative-for-ng-disabled-in-angular2 – Marvin

1

Da Sie Angular verwenden, ist es besser, FormControls und FormGroups zu verwenden. Werfen Sie einen Blick auf this Leitfaden. Mit der FormControl-API können Sie die Eingabe enable und disable programmgesteuert.

Eine andere Möglichkeit ist property binding zu verwenden und so etwas tun:

<div> 
    <input type="text" [readonly]="!editable"> 
</div> 
+0

Nein. Ich möchte nicht "readonly" oder "deaktiviert" verwenden Attribut. Ich möchte ein statisches Element anstelle eines Formular-Steuerelements wie 'select' oder' input' zeigen, aber ohne jedes Steuerelement einzeln umzuschalten. – karthikaruna

+0

Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Wenn Sie Ihre Eingabe so gestalten, dass sie wie ein "statisches" Element aussieht? – tasos

+0

Angular unterstützt nicht die Bindung an "deaktivierte" Elemente. Ich kann 'readonly' nicht verwenden, da meine Forms' select' Element haben und 'readonly' keine Auswirkung auf sie hat. Außerdem möchte ich primär nicht jedes Element einzeln umschalten. – karthikaruna

Verwandte Themen