Sencha Touch 2.x FAQ – 多级目录下 Ext.application 中 views 的写法

原先我们的 view 目录下有两个文件:Main.js 和 Home.js,相应的在 Ext.application({…}) 中 views 的写法应该如下:

...
views: [
  'Main',
  'Home'
],
...

假设我们重新组织了 view 目录:在 view 目录下新建一个 login 目录,把 Home.js 放入新建的 login 目录;在 view 目录下再新建一个 main 目录,把 Main.js 放入 main 目录。那么现在 views 的写法应该如下:

...
views: [
  'main.Main',
  'login.Home'
],
...

注意,不是 ‘main/Main’,也不是 ‘main\Main’,而是 'main.Main'

Sencha Touch 2.x FAQ – 把 app/view 下面的文件再用几个目录组织起来之后,程序应该相应的做什么样的修改?

按照 Sencha Touch 的编码约定,把 view 下面的文件的类名改成带子目录的即可,
比如原先我们有一个 Main.js 的 view 文件在目录 app/view 下面,Main.js 中的类定义应该类似于:Ext.define(‘Sencha.view.Main‘, {… }); 这样。

现在我们在 app/view 下面又建了一个 main 目录,即 app/view/main 目录,我们把 Main.js 移到现在这个目录下面。那么现在 Main.js 中的类定义就得改成:Ext.define(‘Sencha.view.main.Main‘, {…}); 依此类推即可。

Sencha Touch 编码约定 -> 命名空间和代码组织

  1. OrganizationName.group[.subgroup].ClassName
  2. 每个类一个单独的文件
  3. 文件名称要和类名一致
  • Ext.chart.Label -> Ext/chart/Label.js
  • Ext.data.writer.Xml -> Ext/data/writer/Xml.js
  • MyApp.field.Password -> MyApp/field/Password.js

本文地址:http://www.tfan.org/sencha-touch-2-x-faq-namespacing-and-code-organization

Sencha Touch 2.x FAQ – 增加一个 View 到 tabpanel 都需要哪些必备的配置信息 ?

和 iOS 类似,要在 tabpanel 中作为一个 Tab 显示的 View 需要提供 tabbar 显示所需的的 title 和 icon 以供正常显示。其中 title 或 icon 两个必须提供一个。否则会提示:Uncaught Error: [ERROR][Ext.Container#onFirstItemAdd] Adding a card to a tab container without specifying any tab configuration

在 View 的 Config 下面配置 titleiconCls 两个属性,例如

Ext.define('mu.view.PresidentList', {
 extend: 'Ext.List',
 xtype: 'president_list',

 config: {
 title: 'presidents',
 iconCls: 'team',
 itemTpl: '{firstName} {lastName}',
 store: "Presidents"
 }
});

原文地址:http://www.tfan.org/faq-configuration-required-to-add-view-to-tab-panel/

Tips – TextMate 的 Sencha Touch bundles

git clone git://github.com/edspencer/Sencha.tmbundle.git

双击 clone 下来的 bundle 安装即可,支持 Sencha Touch 2。

简单用法

比如我们要来定义一个新的类,在编辑器窗口输入 “def” 然后按 “tab” 键,相应的代码片段就生成了。

/**
 * @class MyNamespace.Presidents
 * @extends Object
 * Description
 */
Ext.define('MyNamespace.Presidents', {
 extend: 'Object',

 config: {

 }
});

sencha-touch-textmate-bundles

原文地址:http://www.tfan.org/tips-textmate-sencha-touch-bundles/

使用 Node.js 和 MongoDB 开发高性能微信公众平台应用

发布仅两年即坐拥三亿用户的微信无疑是当前国内最炙手可热的移动互联网应用,腾讯也据此稳稳拿到一张移动互联网的“船票”。微信公众平台的推出,则让其他企业和个人有机会通过微信渠道将业务和品牌推广给上亿的微信用户,可以大大地减少宣传成本;同时也可以充分利用微信公众平台接口的能力和移动终端特性,开发出创新的产品和商业模式。

使用微信公众平台我们既可以向订阅用户群发消息,也可以编程实现对用户发送的消息进行自动回复,同时还可以管理用户的订阅和取消事件等;支持的消息类型既包括文本,语音,图片,位置信息和链接,也可以是丰富的图文信息。而且未来肯定还会不断地增加新的功能,比如移动支付。

因此从本质上来看,微信公众平台就是一个豪华版的移动互联网时代的“梦网”,想想当年的“移动梦网”可是拯救了整个的国内互联网公司,微信公众平台的发展未来绝对可以用“不可限量”来形容。

这个 presentation 主要与大家交流微信公众平台应用开发的相关内容,涵盖接入,设计,开发,调试和测试等全流程,将会对微信公众平台接口和能力进行全面而详尽的剖析。

我们使用流行的 Node.js + MongoDB 的组合进行讲解和演示,最终使大家都能够开发出支持百万用户以上的高性能可伸缩的微信公众平台应用。

PPT

原文地址:http://www.tfan.org/wechat-on-nodejs-and-mongodb/

如何让 Node-express 支持 XML 形式的 POST 请求?

express 是基于 connect 开发的,使用 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-www-form-urlencoded, 以及 multipart/form-data。 也就是说不支持对 XML 形式的包体进行解析。

但是以 XML 格式作为接口数据交换还是有人在用,比如 Microsoft 的 Bing Translator HTTP API,以及腾讯微信的公众平台接口。之前用 Node.js 实现调用 Bing Translator 接口时用过 Node.js 的 xml2js 库,可以把 XML 转换成 JSON 格式以方便我们的程序进行解析。这里我们同样可以使用 xml2js 扩展 express 以使其支持 XML 形式的请求。

参考:

  • https://gist.github.com/davidkrisch/2210498
  • http://expressjs.com/api.html#bodyParser
  • http://stackoverflow.com/questions/11002046/extracting-post-data-with-express
  • https://groups.google.com/forum/?fromgroups=#!topic/express-js/6zAebaDY6ug