gpt4 book ai didi

ember.js - 如何在 Ember.js 中访问 find() 结果的长度

转载 作者:行者123 更新时间:2023-12-04 07:24:49 24 4
gpt4 key购买 nike

这个问题和整个问题的答案已经过时。 Ember 数据发生了很大变化。请阅读:http://guides.emberjs.com/v1.11.0/models/

我有这个小小的 Ember 应用程序:

window.App = Ember.Application.create();

App.Store = DS.Store.extend({
revision: 11,
adapter: DS.FixtureAdapter({
simulateRemoteResponse: false
})
});

App.Model = DS.Model.extend({
title: DS.attr('string')
});
App.Model.FIXTURES = [];

App.ready = function() {
console.dir(App.Model.find().get('length'));
App.Model.createRecord({id: 1, title: "TEST"});
console.dir(App.Model.find().get('length'));
console.dir(App.Model.find(1).get('title'));
};

我在 console.dir(App.Model.find(1).get('title') 中得到了正确的标题然而这两个 get('length')调用返回 0。我错过了什么?

这是一个(非)工作 jsbin: http://jsbin.com/uxalap/6/edit

最佳答案

原因可能是您正在调用 get("length")甚至在数据加载之前,

基本上当你做 App.Model.find()它返回一个 RecordArray 的实例但它不会有数据,在后台它会查询数据库并获取数据,现在一旦加载数据,您就会找到实际长度

你可以尝试在 isLoaded 上添加一个观察者属性如下

record = App.store.findQuery(App.Model);
alertCount = function(){
if(record.isLoaded){
alert(record.get("length"));
}
};
Ember.addObserver("isLoaded", record, alertCount);

关于ember.js - 如何在 Ember.js 中访问 find() 结果的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15135556/

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