gpt4 book ai didi

javascript - 如何将 SC.Record 的 SC.Record.toMany() 数据绑定(bind)到 ListView?

转载 作者:行者123 更新时间:2023-12-03 13:38:45 27 4
gpt4 key购买 nike

我正在尝试使用 Sproutcore 呈现 UI,其中我有一个列表列表。有一个垂直的数据列表,其中每个关联的项目都有自己的项目列表。我已经根据我对 Sproutcore 的了解设置了我认为合适的模型。

模型:

App.VerticalData = SC.Record.extend({
someField: SC.Record.attr(Boolean),
associatedListOfData: SC.Record.toMany("App.HorizontalData", {
inverse: "vertical",
isMaster: YES
})
});

App.HorizontalData = SC.Record.extend({
someForeignKeyField: SC.Record.attr(Number),
vertical: SC.Record.toOne("App.VerticalData", {
inverse: "associatedListOfData",
isMaster: NO
}),
});

我在垂直列表的 ListItemView 中添加了一个 subview ,并修改了子类,以便它将水平列表中的项目布局......嗯......水平。我遇到的问题是,我似乎能够从 toMany() 关系中获取数据以绑定(bind)到此水平列表的唯一方法是对垂直列表中的每个项目执行以下操作。
horizontalListView.set('content', App.store.find(SC.Query.local(App.HorizontalData, {
conditions: 'someForeignKeyField = ' + keyValueOfVerticalItem)
})));

这是痛苦的,可悲的缓慢。我不明白为什么我似乎不能只将计算属性的结果用于当前垂直列表项的 toMany() 字段。有人可以在这里提供一些指导吗?也许我错过了一些愚蠢的东西。

如果我尝试直接访问该属性,这是我得到的结果:
Object
SproutCore18001994610927067697: "sc1271"
__sc_super__: Object
_bindings: Array[0]
_kvo_cacheable: true
_kvo_changeLevel: 0
_kvo_changes: null
_kvo_cloned: Object
_kvo_content_observed_keys: Object
_kvo_dependents: Object
_kvo_revision: 2
_object_toString: "SC.ManyArray:sc1271"
_observableInited: true
_observers: Array[0]
_prevStoreIds: Array[167]
_properties: Array[15]
_records: null
bindings: Array[0]
manyAttribute: Object
outlets: Array[0]
propertyName: "associatedListOfData"
propertyRevision: 2
record: Object
recordType: App.HorizontalData
__proto__: Object

我不知道这看起来是否正确。所以我有可能在我用于测试数据的 FIXTURES 中仍然没有正确定义一些东西。我在 associatedListOfData 字段中输入的信息是与 Horizo​​ntalData 表中元素的 GUID 对齐的数字数组。

最佳答案

我认为您的记录定义可能有问题。如果您暂时忘记了 ListView ,只是打开控制台,您可以获取 App.VerticalData 吗?记录并问它是什么associatedListOfData是?

例子:

var vertical_id = 1;
var vertical = App.store.find('App.VerticalData', vertical_id);

console.log(vertical.get('associatedListOfData'));

如果打印不正确,那么您就知道记录本身有问题,而不是 View 有问题。

我将不得不在这里猜测一下,但由于您在创建记录时没有指定 key ,我敢打赌 SC 根本无法将两者联系在一起。除非你的数据库键是 associatedListOfDatavertical ,它可能不起作用。

如果这不能解决问题,您能否更新您的代码以显示它的实际编写方式,并可能向我们展示您的服务器发送的 JSON?

关于javascript - 如何将 SC.Record 的 SC.Record.toMany() 数据绑定(bind)到 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081305/

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