首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态形状生成角5

动态形状生成角5
EN

Stack Overflow用户
提问于 2018-05-25 11:55:31
回答 1查看 71关注 0票数 0

我正在为登录实现多个表单。首先,它将要求用户名和密码,然后是许可证,等等。这是我目前的实现。

初始形式是从auth.component.ts > ngOnInit()函数呈现的。提交后,它将调用login-service.ts > submit(),然后调用afterSubmit()。在这里,我期待另一个生成表单的json。我正试图做到这一点,就像我们在最初的情况下所做的那样。但是this.form属性在这个类中不可用。我怎样才能做到这一点?

8月部分:

auth.component.html

代码语言:javascript
复制
<div class="container">
    <div id="loginbox" style="margin-top:20%;" class="mainbox col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
        <div class="panel panel-info">
            <div class="panel-heading">
                <div class="panel-title">Control Tower Login</div>
            </div>
            <div style="padding-top:30px" class="panel-body">

                <div style="display:none" id="login-alert" class="alert alert-danger col-sm-12"></div>
                <app-form-builder *ngIf="form" [form]="form" [service]="service"  [submitButtonLabel]="'Login'"
                                  [additionalButton]="'Cancel'"></app-form-builder>
            </div>
        </div>
    </div>
</div>

auth.component.ts

代码语言:javascript
复制
@Component({
    selector: 'app-auth',
    templateUrl: './auth.component.html',
    providers: [AuthService, LoginService]
})
export class AuthComponent implements OnInit {

    @Input() formElements: any = [];
    form: any;
    message: any;

    constructor(private router: Router, public authService: AuthService, private service: LoginService, public event: EventService) {

    }

    ngOnInit() {

        this.form = [
            {
                "name": "username",
                "inputType": "text",
                "required": "false",
                "placeholder": {
                    "readable": "Username",
                    "key": "form.login.placeholder.username"
                },
                "label": {
                    "readable": "Username",
                    "key": "form.login.label.username"
                }
            },
            {
                "name": "password",
                "inputType": "password",
                "required": "false",
                "placeholder": {
                    "readable": "Password",
                    "key": "form.login.placeholder.password"
                },
                "label": {
                    "readable": "Password",
                    "key": "form.login.label.password"
                }
            }
        ];
    }
}

login-service.ts

代码语言:javascript
复制
import {Injectable} from '@angular/core';
import {FormBuilderService} from "../form-builder/form-builder.service";
import {CommunicatorService} from '@eqs/ng-communicator';
import {Router} from '@angular/router';
import {USER_SERVICE_ROUTES, LICENSE_FORM_FIELDS} from './user.constant';
import {BehaviorSubject} from 'rxjs/BehaviorSubject';

@Injectable()
export class LoginService extends FormBuilderService {

    private response: any;
    public step: number = 1;
    private messageSource = new BehaviorSubject<any>("default message");
    currentMessage = this.messageSource.asObservable();
    constructor(protected communicator: CommunicatorService,
                protected router: Router) {
        super(communicator, router, USER_SERVICE_ROUTES.getUserCreateForm, USER_SERVICE_ROUTES.createUser);
    }
    afterSubmit(response: any) {

    }
    /**
     * Submit the form
     *
     * @param model
     */
    submit(model) {

        console.log(model);
        this.afterSubmit(model);
    }

    getResponse() {
        return this.response;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-25 12:10:57

在登录服务中:

代码语言:javascript
复制
setForm(form){
    this.form = form
}

在第四部分:

代码语言:javascript
复制
ngOnInit() {  
    this.service.setForm(this.form);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50528657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档