gpt4 book ai didi

javascript - Ember Data DS.Model 的 set 功能不起作用?

转载 作者:行者123 更新时间:2023-11-28 13:48:27 24 4
gpt4 key购买 nike

在 Ember Data 中,在声明模型并提交到商店后,我检索它并尝试为特定字段设置新值,但是它给了我这个错误:

Uncaught Error: <DS.StateManager:ember227> could not respond to event setProperty in state rootState.loaded.created.inFlight.
Ember.StateManager.Ember.State.extend.sendRecursively ember-latest.min.js:17
Ember.StateManager.Ember.State.extend.sendRecursively ember-latest.min.js:17
Ember.StateManager.Ember.State.extend.sendRecursively ember-latest.min.js:17
Ember.StateManager.Ember.State.extend.sendRecursively ember-latest.min.js:17
Ember.StateManager.Ember.State.extend.sendRecursively ember-latest.min.js:17
Ember.StateManager.Ember.State.extend.send ember-latest.min.js:17
DS.Model.Ember.Object.extend.send ember-data.js:2540
DS.Model.Ember.Object.extend.setProperty ember-data.js:2549
(anonymous function) ember-data.js:2682
n.set ember-latest.min.js:14
c ember-latest.min.js:14
Ember.Observable.Ember.Mixin.create.set ember-latest.min.js:15
(anonymous function)

详细信息(主要是样板代码):

/* create store */
App.store = DS.Store.create({
revision: 2,
// adapter: DS.LocalStorageAdaptor.create({}),
adapter: DS.DjangoTastypieAdapter.create({
serverDomain: "http://localhost:8000",
tastypieApiUrl: 'api/v1/',
});
});

// declare model
App.StyleData = DS.Model.extend({
...
storageID: DS.attr('number', {defaultValue: 0, key: 'storageID'}),

didCreate: function(){
// console.log('didcreate');
},

});

/*create new model */

App.store.createRecord(App.StyleData, {storageID: 0});
App.store.commit();

/* retrieve model and set new value for storageID */
var mod = App.store.findAll( App.StyleData );
var mod1 = mod.get('modelCache')[0];
mod1.set('storageID', 10) // here the error above is thrown

最佳答案

此错误是由于尝试在通过 API 调用保存记录时修改记录而导致的。在您的示例中,App.store.commit() 启动 ajax 操作以将新记录的详细信息发送到您的 API。 Ajax 调用是异步操作,因此记录会进入 inFlight 状态,直到 API 响应,如果一切成功,ember-data 会将记录转换回 clean 状态。虽然它是inFlight,但不能修改。

关于javascript - Ember Data DS.Model 的 set 功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434603/

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