Implement submit directive of form based on parent component
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Hello i am trying to understand how can you create reusable forms in Typescript
.What i understood so far is that you can create a Form Component
, write its HTML
file where you use the model
fields
.You leave the .ts
file untouched.
Then you come with the component that needs the form and you embed the selector
inside the parent component
's HTML
file:
Form Component
@Component(
selector: 'app-user-form',
templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.sass']
)
export class UserFormComponent implements OnInit
public Submit(empform:NgForm):void //can i make this abstract...or somehow make it available from the parent component to implement?
console.log(empform);
constructor()
ngOnInit()
<form #userForm="ngForm" (ngSubmit)="Submit(userForm)">
<div class="form-group">
<label>Id</label>
<input id="id" [(ngModel)]="id" type="text" class="form-control" name="jid">
</div>
<button type="submit" class="btn btn-primary">Save</button>
<//form>
So now what i understand is that if you declare a variable inside the parent
Component
with the fields named as in the form you have successfully binded them.
Parent Component
export class CreateComponent implements OnInit
public id:number; // this parent variable is bound to the field of the form
submit(empForm:NgForm):void //override or something depending on the parent
console.log(empForm);
<div id="childForm">
<app-user-form></app-user-form>
</div>
What i am curious is if how can i make the form
to expose a method
for the parent
,and the parent to implement it? I want to make the form
dumb and the parent to decide how to respond to the submit
.
typescript angular2-forms code-reuse
add a comment |
Hello i am trying to understand how can you create reusable forms in Typescript
.What i understood so far is that you can create a Form Component
, write its HTML
file where you use the model
fields
.You leave the .ts
file untouched.
Then you come with the component that needs the form and you embed the selector
inside the parent component
's HTML
file:
Form Component
@Component(
selector: 'app-user-form',
templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.sass']
)
export class UserFormComponent implements OnInit
public Submit(empform:NgForm):void //can i make this abstract...or somehow make it available from the parent component to implement?
console.log(empform);
constructor()
ngOnInit()
<form #userForm="ngForm" (ngSubmit)="Submit(userForm)">
<div class="form-group">
<label>Id</label>
<input id="id" [(ngModel)]="id" type="text" class="form-control" name="jid">
</div>
<button type="submit" class="btn btn-primary">Save</button>
<//form>
So now what i understand is that if you declare a variable inside the parent
Component
with the fields named as in the form you have successfully binded them.
Parent Component
export class CreateComponent implements OnInit
public id:number; // this parent variable is bound to the field of the form
submit(empForm:NgForm):void //override or something depending on the parent
console.log(empForm);
<div id="childForm">
<app-user-form></app-user-form>
</div>
What i am curious is if how can i make the form
to expose a method
for the parent
,and the parent to implement it? I want to make the form
dumb and the parent to decide how to respond to the submit
.
typescript angular2-forms code-reuse
1
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16
add a comment |
Hello i am trying to understand how can you create reusable forms in Typescript
.What i understood so far is that you can create a Form Component
, write its HTML
file where you use the model
fields
.You leave the .ts
file untouched.
Then you come with the component that needs the form and you embed the selector
inside the parent component
's HTML
file:
Form Component
@Component(
selector: 'app-user-form',
templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.sass']
)
export class UserFormComponent implements OnInit
public Submit(empform:NgForm):void //can i make this abstract...or somehow make it available from the parent component to implement?
console.log(empform);
constructor()
ngOnInit()
<form #userForm="ngForm" (ngSubmit)="Submit(userForm)">
<div class="form-group">
<label>Id</label>
<input id="id" [(ngModel)]="id" type="text" class="form-control" name="jid">
</div>
<button type="submit" class="btn btn-primary">Save</button>
<//form>
So now what i understand is that if you declare a variable inside the parent
Component
with the fields named as in the form you have successfully binded them.
Parent Component
export class CreateComponent implements OnInit
public id:number; // this parent variable is bound to the field of the form
submit(empForm:NgForm):void //override or something depending on the parent
console.log(empForm);
<div id="childForm">
<app-user-form></app-user-form>
</div>
What i am curious is if how can i make the form
to expose a method
for the parent
,and the parent to implement it? I want to make the form
dumb and the parent to decide how to respond to the submit
.
typescript angular2-forms code-reuse
Hello i am trying to understand how can you create reusable forms in Typescript
.What i understood so far is that you can create a Form Component
, write its HTML
file where you use the model
fields
.You leave the .ts
file untouched.
Then you come with the component that needs the form and you embed the selector
inside the parent component
's HTML
file:
Form Component
@Component(
selector: 'app-user-form',
templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.sass']
)
export class UserFormComponent implements OnInit
public Submit(empform:NgForm):void //can i make this abstract...or somehow make it available from the parent component to implement?
console.log(empform);
constructor()
ngOnInit()
<form #userForm="ngForm" (ngSubmit)="Submit(userForm)">
<div class="form-group">
<label>Id</label>
<input id="id" [(ngModel)]="id" type="text" class="form-control" name="jid">
</div>
<button type="submit" class="btn btn-primary">Save</button>
<//form>
So now what i understand is that if you declare a variable inside the parent
Component
with the fields named as in the form you have successfully binded them.
Parent Component
export class CreateComponent implements OnInit
public id:number; // this parent variable is bound to the field of the form
submit(empForm:NgForm):void //override or something depending on the parent
console.log(empForm);
<div id="childForm">
<app-user-form></app-user-form>
</div>
What i am curious is if how can i make the form
to expose a method
for the parent
,and the parent to implement it? I want to make the form
dumb and the parent to decide how to respond to the submit
.
typescript angular2-forms code-reuse
typescript angular2-forms code-reuse
asked Nov 16 '18 at 12:37
Bercovici AdrianBercovici Adrian
1,51911122
1,51911122
1
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16
add a comment |
1
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16
1
1
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53338060%2fimplement-submit-directive-of-form-based-on-parent-component%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53338060%2fimplement-submit-directive-of-form-based-on-parent-component%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Use top level form to wrap your child component so that you can access your submit method from parent Component
– Chellappan
Dec 4 '18 at 18:16