如何从 ember 中的模板访问路由变量
How to access the variable of a Route from a template in ember
我正在尝试使用 ember 操作在 ember 中进行表单验证。
下面是我的add.js(路线):
export default Route.extend({
errorMessage: '',
model() {
return this.store.createRecord('contact');
},
actions: {
saveContact(contact) {
if (contact.get('firstname') === undefined || contact.get('lastName') === undefined || contact.get('mobile') === undefined) {
this.set('errorMessage', `Some Fields are blank!!`);
} else {
this.set('hasBlank', false);
this.set('errorMessage', "");
contact.save().then(() => {
this.transitionTo("contacts")
})
}
}
}
});
这是我的模板代码:
<h1>Add Contact</h1>
<div class="full-width">
<div>{{input class="form-tag half-width" type="text" placeholder="Enter firstName" value=model.firstName}}</div>
<div>{{input class="form-tag half-width" type="text" placeholder="Enter lastName" value=model.lastName}}</div>
<div>{{input class="form-tag half-width" type="number" placeholder="Enter mobile Number" value=model.mobile}}</div>
<button class="form-button half-width" {{action 'saveContact' model}}> Add </button>
{{#if errorMessage}}
<div class="form-tag half-width">{{errorMessage}}</div>
{{/if}}
</div>
在此模板中,当有空白表单时,errorMessage 字段不会显示 fields.But 如果我在控制台中记录它,它会显示。
有人可以帮我吗?
提前致谢
errorMessage
和你的动作 saveContact
应该在相应的控制器而不是路线上。如果您还没有创建相应的控制器,可以使用 ember generate controller <controller-name>
创建。您的控制器名称应与您的路线名称相对应。
顺便说一句,当您从控制器操作进行调用时,您需要使用 transitionToRoute
而不是 transitionTo
。
我正在尝试使用 ember 操作在 ember 中进行表单验证。
下面是我的add.js(路线):
export default Route.extend({
errorMessage: '',
model() {
return this.store.createRecord('contact');
},
actions: {
saveContact(contact) {
if (contact.get('firstname') === undefined || contact.get('lastName') === undefined || contact.get('mobile') === undefined) {
this.set('errorMessage', `Some Fields are blank!!`);
} else {
this.set('hasBlank', false);
this.set('errorMessage', "");
contact.save().then(() => {
this.transitionTo("contacts")
})
}
}
}
});
这是我的模板代码:
<h1>Add Contact</h1>
<div class="full-width">
<div>{{input class="form-tag half-width" type="text" placeholder="Enter firstName" value=model.firstName}}</div>
<div>{{input class="form-tag half-width" type="text" placeholder="Enter lastName" value=model.lastName}}</div>
<div>{{input class="form-tag half-width" type="number" placeholder="Enter mobile Number" value=model.mobile}}</div>
<button class="form-button half-width" {{action 'saveContact' model}}> Add </button>
{{#if errorMessage}}
<div class="form-tag half-width">{{errorMessage}}</div>
{{/if}}
</div>
在此模板中,当有空白表单时,errorMessage 字段不会显示 fields.But 如果我在控制台中记录它,它会显示。
有人可以帮我吗?
提前致谢
errorMessage
和你的动作 saveContact
应该在相应的控制器而不是路线上。如果您还没有创建相应的控制器,可以使用 ember generate controller <controller-name>
创建。您的控制器名称应与您的路线名称相对应。
顺便说一句,当您从控制器操作进行调用时,您需要使用 transitionToRoute
而不是 transitionTo
。