- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题与Ember Octane How to Get Error Messages to be Displayed?有关
问题:清除表单错误的正确方法是什么,我该怎么做?我希望每次用户访问表单时都运行它。表单错误是在 Controller JS 文件中生成的。用例如下:
...
init() {
this._super(... arguments);
this.set('errors', A([]));
},
Don't use
this._super
in ES classes ember/no-ember-super-in-es-classes
import { A } from '@ember/array';
...
init() {
super(... arguments);
this.set('errors', A([]));
}
super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?
<div class="middle-box text-center loginscreen animated fadeInDown">
<div>
<h3>Change Password</h3>
<form class="m-t" role="form" {{on "submit" this.changePassword}}>
{{#each @errors as |error|}}
<div class="error-alert">{{error.detail}}</div>
{{/each}}
<div class="form-group">
<Input @type="password" class="form-control" placeholder="Old Password" @value={{this.oldPassword}} required="true" />
</div>
<div class="form-group">
<Input @type="password" class="form-control" placeholder="New Password" @value={{this.newPassword}} required="true" />
</div>
<div class="form-group">
<Input @type="password" class="form-control" placeholder="Confirm Password" @value={{this.confirmPassword}} required="true" />
</div>
<div>
<button type="submit" class="btn btn-primary block full-width m-b">Submit</button>
</div>
</form>
</div>
</div>
<Clients::ChangePasswordForm @changePasswordModel={{this.model}} @changePassword={{action 'changePassword'}} @errors={{this.errors}} />
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
export default class ChangePasswordForm extends Component {
constructor() {
super(...arguments);
this.errors = []
}
@tracked oldPassword;
@tracked newPassword;
@tracked confirmPassword;
@tracked errors;
@action
changePassword(ev) {
ev.preventDefault();
this.args.changePassword({
oldPassword: this.oldPassword,
newPassword: this.newPassword,
confirmPassword: this.confirmPassword
});
}
}
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';
export default class ChangePassword extends Controller {
@service ajax;
@service session;
@action
changePassword(attrs) {
if(attrs.newPassword == attrs.oldPassword)
{
this.set('errors', [{
detail: "The old password and new password are the same. The password was not changed.",
status: 1003,
title: 'Change Password Failed'
}]);
}
else if(attrs.newPassword != attrs.confirmPassword)
{
this.set('errors', [{
detail: "The new password and confirm password must be the same value. The password was not changed.",
status: 1003,
title: 'Change Password Failed'
}]);
}
else
{
let token = this.get('session.data.authenticated.token');
this.ajax.request(this.store.adapterFor('application').get('host') + "/clients/change-password", {
method: 'POST',
data: JSON.stringify({
data: {
attributes: {
"old-password" : attrs.oldPassword,
"new-password" : attrs.newPassword,
"confirm-password" : attrs.confirmPassword
},
type: 'change-passwords'
}
}),
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/vnd.api+json',
'Accept': 'application/vnd.api+json'
}
})
.then(() => {
this.transitionToRoute('clients.change-password-success');
})
.catch((ex) => {
this.set('errors', ex.payload.errors);
});
}
}
}
最佳答案
经典的 Ember 是
init() {
this._super(...arguments);
}
constructor() {
super(...arguments);
}
@action
clearErrors(){
this.set('errors',[]);
}
<Clients::ChangePasswordForm @changePasswordModel={{this.model}} @changePassword={{action 'changePassword'}}
@clearErrors={{action 'clearErrors'}}
@errors={{this.errors}} />
constructor() {
super(...arguments);
this.args.clearErrors();
}
关于ember.js - Ember Octane 如何清除表格错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61005765/
我有一个运行 Ember@3.20 的项目。我们目前正处于从经典组件迁移到基于微光的组件的过程中,并且遇到了一些可以从缓存中受益的昂贵计算模式。 我的问题是,将功能缓存到 glimmer 组件的 ge
从 Ember 升级 =3.15 .如何将表单值从 Controller 传递到组件? 我无法开始解释尝试的诊断组合的数量以及收到的相应错误。所以,我想最好问问应该如何正确完成?微光参与了吗? 一个简
我有一个带有侧边栏组件的应用程序模板。此侧边栏组件通过应用程序路由模型显示在列表中。应用程序路由检查用户是否经过身份验证,如果没有,则跳过模型加载。索引路由不是 protected 路由,所以它在未登
这个问题与Ember Octane How to Get Error Messages to be Displayed?有关 问题:清除表单错误的正确方法是什么,我该怎么做?我希望每次用户访问表单时都
我想编写一个 Octane/Glimmer 样式的组件,其中传入的操作是可选的。写这个的最好方法是什么? 例如,我希望组件的这两种用途都有效: 现在,我的组件类有很多这样的代码,在调用它之前检查是
在过去的几周里,我一直在玩 ember Octane,我认为它很棒。我已经尝试了一些 ember 插件来测试当前哪些插件可以使用 ember octane,其中一些插件需要 jQuery 才能工作。所
我想要从 HPE ALM Octane 服务器连接到 MSSQL 服务器。现在我遇到了问题,我无法连接到它,因为我的连接字符串无效。你能看出问题所在吗? 连接字符串: jdbc:mercury:sql
我正在升级到 Ember Octane,并且我了解到 mixin 已被弃用。我将继续使用它们,直到我弄清楚如何更换它们。与此同时,我想将我的路由切换为使用新的类语法,而不是 Route.extend。
此问题涉及:Does Ember Octane Route class support using mixins? Mixin 在 Ember Octane 中已被正式弃用。 问题: 替换 Ember
所以我的情况如下:我得到了一个包含几个输入字段的组件,这些字段代表一个联系人并填充了来自服务的数据: @service('contact-data') contact; 每个字段代表一个可以通过以
我正在试用 Octane,出于某种原因,如果我在模板中显示一个数组并向其中添加一个新对象,则 UI 不会更新。我究竟做错了什么? 这是我的模板: Field Name Add field {{#ea
我正在使用 Ember Octane 版本,我想在 Route 中调用一个操作从子组件。伪代码如下。 **Route** export default class SomeRouter extends
我想编写一个测试,当我提交一个字符串时,@tracked array =[0,0,0] 字段将会改变。我有一个简单的 对于 hbs。 如果输入是 1然后跟踪数组变为 [0,1,0] .我该怎么做呢??
我正在 Ember v3.13 中编写一些 Octane 风格的组件,连同 {{did-insert}} ember-render-modifier .但是,当调用绑定(bind)到 did-inse
我正在尝试在 routes/web.php 文件中将 Octane 路由与 Laravel 一起使用。 use Laravel\Octane\Facades\Octane; use Symfony\C
我想使用 Ember.js Octane 在打开和关闭类显示之间切换。我该怎么做呢?我需要@action 还是@tracked? or 最佳答案 这在 Ember 中应该是直截了当的(尤其是使用
我正在尝试将“操作”从 Controller 传递到当前模板的孙组件。但由于某种原因它失败了。谁能告诉我我在这里缺少什么。 MainTemplate's Router Controller expor
最近遇到一个@cached的用例来自 tracked-toolbox编写带有自动跟踪功能的 Glimmer 组件时。这是一个示例代码片段: import Component from '@glimme
我尝试整合monaco code编辑器进入我的 ember 辛烷值应用程序。目前我正在使用 ESM 导入样式并确认手册,我安装了 webpack 加载器插件并将其集成到我的 ember-cli-bui
因此,在 Ember Octane 中,有两种方法可以将函数附加到 hbs 文件中的事件。 EmberJS 方式:{{on 'click' this.function}} 经典的HTML方式:oncl
我是一名优秀的程序员,十分优秀!