2013-09-05 87 views
0

因此,我在过去几天阅读了Sproutcore教程。他们中的很多人都在讨论如何绑定视图和控制器。然后在模型上有关于商店和记录的教程。我所缺少的是关于如何将控制器链接到模型的最佳实践/教程。将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)),但我想还有更好的方法将它们绑定在一起?

对不起,如果这是一个真正的新手问题,我也很感谢链接到一个手册或指南,回答这个问题。我一直在谷歌搜索几个小时,并没有发现有用的东西(并且很容易让我理解)

回答

1

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

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

+0

太好了,非常感谢,很清楚! (这实际上就是我所做的,但我不确定是否正确。) – ceed

+1

你不可能意外地碰到这个,或者已经意识到这一点,但是:确保你知道store.find的行为 - 如果你传入一个记录类型和一个ID,它只返回一个记录,而不是一个数组。只传入一个记录类型(或传入一个SC.Query)会给你你正在寻找的数组。干杯! – Dave

相关问题