【问题标题】:Binding Sproutcore Controllers to Models将 Sproutcore 控制器绑定到模型
【发布时间】:2013-09-05 15:04:12
【问题描述】:

所以我在过去几天阅读了 Sproutcore 教程。他们中的很多人都在谈论如何绑定视图和控制器。然后有关于模型的教程,讨论商店和记录。我缺少的是关于如何将控制器链接到模型的最佳实践/教程。

鉴于我有一个模型:

Myapp.User = SC.Record.extend({
    id: SC.Record.attr(Number),
    name: SC.Record.attr(String)
});

还有一个控制器:

Myapp.controller = SC.ArrayController.create(
 {
       allowsMultipleSelection: NO,
        selection: null,
        isEditable: YES
});

绑定它们的最佳方法是什么? (我知道我可以查询商店并设置 Myapp.controller.set('content', store.find(Myapp.User)),但我想有更好的方法将它们绑定在一起?

抱歉,如果这真的是一个新手问题,我还希望能提供一个指向回答此问题的手册或指南的链接。我在谷歌上搜索了几个小时,但没有找到有用的东西(而且很容易让我理解)。

【问题讨论】:

    标签: sproutcore


    【解决方案1】:

    您将要使用的一般过程是让您的状态图在适当的时间设置控制器上的内容。

    例如,当您的用户处于loggedOut 状态时,您可能不需要大多数控制器来获取数据。因此,当进入loggedIn 状态时(使用enterState 方法),您可能希望设置所有控制器,然后设置您的用户界面。您通常会将控制器的内容设置为特定对象(例如您从授权系统返回的用户对象)或返回 SC.RecordArrayMyApp.store.find(...) 调用。

    【讨论】:

    • 太好了,非常感谢,很清楚! (这实际上是我所做的,但我不确定这是否正确。)
    • 您不太可能意外遇到这种情况,或者已经意识到这一点,但是:确保您了解 store.find 的行为 - 如果您传入记录类型和 ID ,它只返回一条记录,而不是一个数组。只传入一个记录类型(或传入一个 SC.Query)将为您提供您正在寻找的数组。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2013-04-03
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多