ALLOy简介 为Titanium SDK设计的一种MVC框架,包含Backbone.js和Underscore.js 内置支持。
backbone.js提供了一套web开发的框架,通过Models进行key-value绑定及custom事件处理,通过Collections提供一套丰富的API用于枚举功能,通过Views来进行事件处理及与现有的Application通过RESTful JSON接口进行交互.它是基于jquery和underscore的一个js框架。
主要组成:
1.model:创建数据,进行数据验证,销毁或者保存到服务器上
2.collection:可以增加元素,删除元素,获取长度,排序,比较等一系列工具方法,说白了就是一个保存 models的集合类
3.view:绑定html模板,绑定界面元素的事件,初始的渲染,模型值改变后的重新渲染和界面元素的销毁等
优势:
1. 将数据和界面很好的分离开来。
2. 将事件的绑定很好的剥离出来,便于管理和迭代。
3. 使得Javascript程序的模块化更加清晰、明了。
Underscore.js是一个很精干的库,压缩后只有4KB。它提供了几十种函数式编程的方法,大大方便了Javascript的编程。上面的backbone.js就是基于这个库。
它定义了一个下划线(_)对象,函数库的所有方法都属于这个对象。这些方法大致上可以分成:集合(collection)、数组(array)、函数(function)、对象(object)和工具(utility)五大类。
Alloy 基本概念
Alloy Models Backbone's Model and Collection
Alloy Views Titanium UI components
Alloy Controllers Titanium SDK API
例如:$.label用来访问Ti.UI.Label,像$.label.hide()和$.label.text
$.index用来获取顶级的UI对象。
访问外部控制器和视图,Alloy.createController和Controller.getView两种方法。
继承:
exports.baseController = 'baseControllerName'
例如:
app/controllers/animal.js
exports.speak = function() {
alert("Yelp!");
};
app/views/animal.xml
<Alloy>
<Label id="animalLabel">Animal</Label>
</Alloy>
app/controllers/dog.js
exports.baseController = "animal";
$.animalLabel.text = "Dog";
exports.speak = function() {
alert("Bark!");
};
backbone.js提供了一套web开发的框架,通过Models进行key-value绑定及custom事件处理,通过Collections提供一套丰富的API用于枚举功能,通过Views来进行事件处理及与现有的Application通过RESTful JSON接口进行交互.它是基于jquery和underscore的一个js框架。
主要组成:
1.model:创建数据,进行数据验证,销毁或者保存到服务器上
2.collection:可以增加元素,删除元素,获取长度,排序,比较等一系列工具方法,说白了就是一个保存 models的集合类
3.view:绑定html模板,绑定界面元素的事件,初始的渲染,模型值改变后的重新渲染和界面元素的销毁等
优势:
1. 将数据和界面很好的分离开来。
2. 将事件的绑定很好的剥离出来,便于管理和迭代。
3. 使得Javascript程序的模块化更加清晰、明了。
Underscore.js是一个很精干的库,压缩后只有4KB。它提供了几十种函数式编程的方法,大大方便了Javascript的编程。上面的backbone.js就是基于这个库。
它定义了一个下划线(_)对象,函数库的所有方法都属于这个对象。这些方法大致上可以分成:集合(collection)、数组(array)、函数(function)、对象(object)和工具(utility)五大类。
Alloy 基本概念
Alloy Models Backbone's Model and Collection
Alloy Views Titanium UI components
Alloy Controllers Titanium SDK API
为了简化开发,Alloy采用目录结构和命名约定来组织程序,而不是配置文件。
目录名称 | 内容 |
app | 包含应用程序模型,视图,控制器和所有资源文件 |
app/alloy.jmk | 编译配置文件 |
app/alloy.js | 程序的初始化文件 |
app/config.json | 项目配置文件 |
app/assets | 项目所有资源文件 |
app/controllers | 控制器文件 |
app/lib | 包含特定的库文件 |
app/migrations | 包含格式<DATETIME>_filename.js数据库迁移文件 |
app/models | 包含模型文件 |
app/styles | 包含扩展名为.tss的样式文件 |
app/views | 包含视图文件 |
app/widgets | 包含组件文件,每个组件都有跟程序一样的目录结构 |
i18n | 包含国际化和本地化文件 |
Resources | 包含编译生成的文件 |
Alloy视图
1.XML标记
2.样式和主题
3.动态样式
4.无控制器的视图
Alloy控制器
作用:控制器包含用来控制用户界面和与模型进行通信的应用程序逻辑。例如:$.label用来访问Ti.UI.Label,像$.label.hide()和$.label.text
$.index用来获取顶级的UI对象。
访问外部控制器和视图,Alloy.createController和Controller.getView两种方法。
继承:
exports.baseController = 'baseControllerName'
例如:
app/controllers/animal.js
exports.speak = function() {
alert("Yelp!");
};
app/views/animal.xml
<Alloy>
<Label id="animalLabel">Animal</Label>
</Alloy>
app/controllers/dog.js
exports.baseController = "animal";
$.animalLabel.text = "Dog";
exports.speak = function() {
alert("Bark!");
};
Alloy模型
1.集合和模型对象
2.数据绑定
3.同步适配器和迁移
4.无Alloy的Backbone对象
Alloy插件
1.配置文件widget.json
2.主控制器文件widget.js
3.样式文件widget.tss
4.视图文件widget.xml
Alloy调试和故障排除
1.配置文件