gpt4 book ai didi

javascript - 如何在 route 使用空白的 Ember 数据模型?

转载 作者:行者123 更新时间:2023-11-29 19:29:07 25 4
gpt4 key购买 nike

我在以下内容中找不到太多内容,如果您有任何关于此的帖子或指南,我们将不胜感激!

我正在尝试使用表单和路由器创建新记录。我要解决这个问题的方法是在路由器中设置模型,然后在用户提交带有操作的表单时保存记录。

我见过其他示例,其中作者在 Controller 中执行“createRecord”并使用“get”或“getProperties”从表单中获取值。但是,在我下面的代码中,这似乎要简单得多:

Dashboard.CreateAccountRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord('account', {});
},
actions: {
createAccount: function () {
var account = this.modelFor('create_account');

var self = this;
account.save().then(function(account){
self.flashMessage('The account was added successfully!', 'alert-success');
self.transitionTo("accounts");
}, function(reason) {
self.flashMessage('There was an error saving the account. Please try again.', 'alert-error');
console.log(reason);
});
}
}
});

当然,这样做的问题是,如果用户不提交表单,记录仍然会添加到本地存储中。否则,它将按照表单记录中的预期设置值工作。

在执行“createAccount”操作之前,如何在不向商店保存任何内容的情况下完成上述操作?

最佳答案

您可以使用路由的 deactivate Hook 来回滚您的模型。这是一个例子:

deactivate: function() {
var model = this.get('controller.model');
if (model != null) {
model.rollback();
}
}

关于javascript - 如何在 route 使用空白的 Ember 数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29217946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com