如何在 ember 中启用 ds-rollback-attribute?
How to enable ds-rollback-attribute in ember?
Ember 具有与默认方法 rollbackAttributes()
非常相似的方法 rollbackAttribute()
。不同之处在于 rollbackAttribute()
只能用于回滚特定模型属性。
默认情况下,此方法不可用,要使用它,您需要启用 ds-rollback-attribute
和 运行 金丝雀构建,如下所示:https://docs.w3cub.com/ember/classes/ds.model/methods/#rollbackAttribute
在哪里可以启用 ds-rollback-attribute
以及如何 运行 canary build
?
我担心您正在查看非官方和过时的 API 文档。 Ember 数据的 API 文档托管于此处:https://api.emberjs.com/ember-data/release
最新版本不再记录 rollbackAttribute()
方法,在撰写本文时为 3.13
。这是 last documented for 3.1
. I think it was removed as a stale feature flag in this PR: [FEAT] remove all stale feature flags #5384
其实rollbackAttribute()
的实现很简单。
我们可以创建自己的方法并将其提取到 service
.
app/services/rollback-attribute.js
import Ember from 'ember';
export default Ember.Service.extend({
rollback(model, attribute) {
const changedAttributes = model.changedAttributes();
if (changedAttributes[attribute]) {
model.set(attribute, changedAttributes[attribute][0]);
}
}
});
创建此服务后,您可以在 route.js
中使用它
import Ember from 'ember';
import service from 'ember-service/inject';
export default Ember.Route.extend({
rollbackAttribute: service('rollback-attribute'),
_rollbackAttribute(model, attribute) {
this.get('rollbackAttribute').rollback(model, key);
},
});
Ember 具有与默认方法 rollbackAttributes()
非常相似的方法 rollbackAttribute()
。不同之处在于 rollbackAttribute()
只能用于回滚特定模型属性。
默认情况下,此方法不可用,要使用它,您需要启用 ds-rollback-attribute
和 运行 金丝雀构建,如下所示:https://docs.w3cub.com/ember/classes/ds.model/methods/#rollbackAttribute
在哪里可以启用 ds-rollback-attribute
以及如何 运行 canary build
?
我担心您正在查看非官方和过时的 API 文档。 Ember 数据的 API 文档托管于此处:https://api.emberjs.com/ember-data/release
最新版本不再记录 rollbackAttribute()
方法,在撰写本文时为 3.13
。这是 last documented for 3.1
. I think it was removed as a stale feature flag in this PR: [FEAT] remove all stale feature flags #5384
其实rollbackAttribute()
的实现很简单。
我们可以创建自己的方法并将其提取到 service
.
app/services/rollback-attribute.js
import Ember from 'ember';
export default Ember.Service.extend({
rollback(model, attribute) {
const changedAttributes = model.changedAttributes();
if (changedAttributes[attribute]) {
model.set(attribute, changedAttributes[attribute][0]);
}
}
});
创建此服务后,您可以在 route.js
import Ember from 'ember';
import service from 'ember-service/inject';
export default Ember.Route.extend({
rollbackAttribute: service('rollback-attribute'),
_rollbackAttribute(model, attribute) {
this.get('rollbackAttribute').rollback(model, key);
},
});