sproutcore - SproutCore命名空间

标签 sproutcore

我想知道如何使用SproutCore的OOP实现创建命​​名空间对象。我过去曾与Joose合作过,并且会自动生成 namespace ,例如:

Class('MyNamespace.AnotherNamespace.ClassName',{})

但是在SproutCore中,看起来您可能必须自己创建单个对象?我觉得这有点乏味。我想念什么吗?

任何帮助将不胜感激。

谢谢

最佳答案

SproutCore类很容易创建:SC.Object.extend({...})。任何对象的任何未保留的属性都可以视为 namespace 。只需放入SC.Object(SC.Object.create)。根据hvg的回答,您可以在实例化应用程序时声明它,或者稍后在另一个文件中声明它:

MyApp.SubNamespace = SC.Object.create({
  ClassName: SC.Object.extend({...}),
  OtherClassName: SC.Object.extend({...})
});

这与您的Joosie示例相比,没有更多的代码。您观察到不是自动为您创建 namespace 的观察是正确的,但这具有语义上的好处:您可以在创建 namespace 的同时定义所有 namespace 的内容,这有助于代码的集中化;并且可以防止您不小心自动定义拼写错误的 namespace 的错误。

这里的关键见解是您的应用程序对象不仅仅是一个 namespace ,它是提供应用程序功能的类的 Activity ,动态实例。您的所有应用程序代码均应放入应用程序对象中这一事实创建了一种自然的 namespace ,而且我发现大多数时候我的子命名空间都以相同的方式工作(myApp.mainPage,myApp.contentController,myApp.remoteDataSource, myApp.statechart)。当然,也欢迎您通过SC.Object的专用实例将代码组织到专用的 namespace 中,我经常这样做,但是SC应用程序倾向于高度自组织。

关于sproutcore - SproutCore命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221056/

相关文章:

rubygems - Sproutcore安装-找不到RubyGem

sproutcore - 有没有办法将 960 和 compass 与 sproutcore 一起使用?

ruby - 是否有 SproutCore 或 Cappuccino 的现场演示/示例应用程序

ruby-on-rails - 我得到 rvm : command not found after installation of rvm

GWT、Sproutcore 或 Cappuccino

Sproutcore 2.0 一对多关系

sproutcore - 自定义ListView行,不能再选择行

java - 构建丰富的 Web 应用程序有哪些选择?

datasource - Sproutcore 数据源和模型关系

sproutcore - 我应该如何绑定(bind)值以使 CustomItemView 中的 labelView 显示 listController 中的文本信息?