在SproutCore夹具中定义函数

在SproutCore夹具中定义函数,sproutcore,Sproutcore,是否可以从SproutCore夹具内部定义函数?例如,如果我想要一个数组控制器,它根据选择更改应用于对象的函数。我尝试在模型中指定一个属性,如下所示: func: SC.Record.attr(Object) 在固定装置中,如下所示: {guid: 'tool-0', func: function(){ $('domObject').append('message'); } } 但我得到: Uncaught TypeError: Property 'func' of object

是否可以从SproutCore夹具内部定义函数?例如,如果我想要一个数组控制器,它根据选择更改应用于对象的函数。我尝试在模型中指定一个属性,如下所示:

func: SC.Record.attr(Object)
在固定装置中,如下所示:

{guid: 'tool-0', 
 func: function(){
   $('domObject').append('message');
 }
}
但我得到:

Uncaught TypeError: Property 'func' of object App.Tool({guid: tool-0 , func: function() { ... }}) READY_CLEAN is not a function

这里是我的实现问题还是我的方法问题?我一开始并不擅长Javascript,也没有关于使用Sproutcore的丰富信息,因此我很难判断我是否正确使用了它。

无法在fixtures文件中添加函数。夹具仅用于在应用程序的开发阶段保存数据


如果要添加任何操作每个对象的现有数据或属性的函数,请在模型中定义这些函数。

您想做什么,从模型对象中修改视图?目前,我正在尝试在DOM中的HTML5画布元素上执行函数,功能的执行取决于ArrayController的选择。想想矩形工具、椭圆工具等等。然而,我希望函数最终存储在数据库或类似的数据库中,因此我使用存储。我希望能够调用App.toolController.get('content').func();此外,如果我调用App.Tool.FIXTURES[0].func()之类的函数也可以,但显然这是一种糟糕的方法。当我试图从ArrayController或ObjectController访问对象时,问题似乎就出现了。我已经让它工作了,但感觉这是一种非常混乱的方式,我不得不使用:App.toolController.get('content').store.dataHashes[App.toolController.get('content').storeKey].func()我肯定有更好的方法。可能有,但我不知道你会怎么做。