最近想使用JSMVC对象项目进行改造,所以调研了下前端的jsmvc的框架,参考了《The top 10 Javascript MVC Frameworks Reviewed》,所以对其中比较推崇的Ember进行了进一步调研,同时翻译了Ember官方的Doc文档。
预览:
目录:
简介
什么是Ember.js ?
Ember.js 与众不同 ?
Ember.js 概览
入门指南
Ember的对象原型
子类化类
重新打开类和实例
计算出的属性(取值器)
计算出的属性(设值器)
观察者[或者理解为监听器]
绑定
什么时候使用 ?
创建一个命名空间
使用Handlebars描述你的UI
Handlebars
Ember.View
Handlerbars基础
{{#if}}, {{else}}, 和 {{#unless}}
{{#with}}
使用{{bindAttr}}绑定元素属性
使用{{bindAttr}}绑定类名称
使用{{action}}处理事件
建立视图层次
{{view}}
设置子视图模版
设置绑定
修改视图的HTML
显示一个元素列表
书写自定义Helper
视图包含的 (一些控件)
深入视图
事件处理
使用Ember.ControllerView手工管理视图
渲染管道
自定义HTML元素
视图上属性绑定
Ember可枚举器的API
什么是可枚举的
Ember中可枚举的
可枚举的接口
内容:
Ember是一个用来创建雄心勃勃 (牛X) 的web应用程序的JS框架,它消除了样本文件并且提供一个标准的应用程序架构。
对于每一个web应用程序都有一些通用的任务。例如:从服务器取得数据,渲染数据到屏幕上,然后当数据变更的时候更新显示信息。
因为浏览器提供的做这件事情的工具很原始,你最终要一遍又一遍的编写相同的代码。Ember.js提供了一些工具,让你专注于你的应用程序,而不是书写100遍相同的代码。
有三个特性,使得你乐于使用Ember:
绑定
计算出的属性
模版自动更新
使用绑定可以是两个不同对象的属性保持同步。你只需要声明一次绑定,然后Ember会确保变化在所有位置进行传播。
以下是如何创建一个对于两个对象的绑定:
1
2
3
4
5
6
7
8
9
10
11
|
MyApp.president = Ember.Object.create({
name: "Barack
Obama"
});
MyApp.country = Ember.Object.create({
// Ending a property with 'Binding' tells Ember to
// create a binding to the presidentName property.
presidentNameBinding: 'MyApp.president.name'
});
// Later, after Ember has resolved bindings...
MyApp.country.get('presidentName');
// "Barack Obama"
|
绑定允许你构建你的应用程序使用MVC模式,然后Rest很容易知道数据将一直正确的在层与层之间传输。
计算出的属性允许你像一个属性一样对待一个function:
1
2
3
4
5
6
7
8
9
10
|
MyApp.president = Ember.Object.create({
firstName: "Barack",
lastName: "Obama",
fullName: function() {
returnthis.get('firstName')
+ '' + this.get('lastName');
// Call this flag to mark the function as a
property
}.property()
});
MyApp.president.get('fullName');
// "Barack Obama"
|
计算出的属性是有用的,因为它们可以和binding一起协作,就像其他的属性一样。
许多计算出的属性依赖于其他属性。例如,在上面的例子中,fullName属性依赖firstName和lastName来确定它的值。你可以告诉Ember关于这些依赖,像这样:
1
2
3
4
5
6
7
8
9
|
MyApp.president = Ember.Object.create({
firstName: "Barack",
lastName: "Obama",
fullName: function() {
returnthis.get('firstName')
+ '' + this.get('lastName');
// Tell Ember that this computed property
depends on firstName
// and lastName
}.property('firstName', 'lastName')
});
|
Ember使用Handlebars(一个语义化的模版库)。从你的JS 应用程序取得数据,然后把它带进DOM,创建一个<script>标签,把它放到你的HTML中任何你想要让你的值出现的地方:
1
2
3
|
<script type="text/x-handlebars">
The President of the United States is
{{MyApp.president.fullName}}.
</script>
|
这是最好的部分:模版是有意识的绑定。就是说,如果你曾经改变那些用来显示的属性的值,我们将为你自动更新它。因为你已经指定了依赖,改变这些属性也会被很好的反映出来。
希望你可以看清这三个强大的工具是怎么在一起协作的:以一些原始属性开始,然后开始构建更复杂的属性和包含依赖的的计算出的属性。一旦你已经完成了数据的表示,你只需要说明他是如何展现一次的,然后Ember会关注剩下的。不管底层数据的如何变化,无论是来自XHR请求或用户执行操作,你的用户界面总是保持最新的。这就消除了开发人员每天都在努力的所有边缘情况的用例
<!--EndFragment-->
......
先声明由于翻译是我一个人完成,也没有经过其他人的校验,所以错误在所难免,发出来的目的有两个:
一是帮助想使用Ember.js的童鞋,方便阅读和理解。
二是希望大家看后指明其中的错误,使此文档更准确。
详细内容请看附件。
分享到:
相关推荐
Ember.js是一款强大的前端Model-View-Controller (MVC)框架,专为构建富交互的Web应用程序而设计。用户手册是开发者入门Ember.js的重要参考资料,涵盖了基础概念、实例解析和最佳实践。以下是对手册中关键知识点的...
### Ember.js Cookbook 知识点概览 #### 标题:Ember.js Cookbook - **核心概念**:本书主要介绍了如何使用 Ember.js 进行 Web 应用开发。 - **适用对象**:适合希望深入了解 Ember.js 的前端开发者、Web 开发者及...
学习和掌握Ember.js 需要理解MVC架构,熟悉JavaScript基础,以及一定的前端开发经验。通过阅读《Ember.js 用户手册.docx》,开发者可以深入理解框架的各个部分,并学会如何高效地利用Ember.js 构建现代Web应用。
此源码分析将深入探讨 Ember.js 3 的核心特性以及如何在 Todo MVC 应用中使用它们。 【标签】:“前端开发”、“Ember.js”、“MVC架构”、“源码分析” 【正文】: Todo MVC Ember 3 源码分析: 1. **Ember.js ...
ember_data_example, 使用 ember.js 和 ember data.js 测试CRUD的简单 Rails 应用 Ember数据示例这个简单的Rails 3.2应用程序创建为演示 Ember.js,ember数据和活动模型序列化程序。 它使用Ember和Ember数据的边缘...
总的来说,Ember.js 是一个全面的解决方案,不仅提供了自动化数据绑定和模板更新,还提供了完整的 MVC 架构和一套标准化的开发流程,使得开发者能够构建出高效、可扩展且易于维护的 web 应用程序。无论你是初学者...
Ember.js是一个用于创建 web 应用的 JavaScript MVC 框架,采用基于字符串的Handlebars 模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由控制、状态机等。 Ember是一个...
Build ambitious single-page web applications using the power of Ember.js and Ember CLI About This Book Build scalable web applications with Ember.js and Ember CLI Leverage the working examples to ...
Ember CLI 是 Ember.js 的官方命令行工具,它提供了快速启动新项目的脚手架,包括自动创建路由、组件和服务等。使用 Ember CLI,你可以方便地进行开发、构建和测试。 在 Ember.js 应用的开发过程中,组件...
为您提供Ember.js MVC 框架下载,Ember.js是一个用于创建 web 应用的 JavaScript MVC 框架,采用基于字符串的Handlebars 模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由...
Ember.js是一个强大的JavaScript框架,专门用于构建单页应用程序(SPA)和复杂的Web应用。它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可维护性。在这个“前端项目-ember.js.zip”压缩包中,你...
Mastering Ember.js kindle版 前端mvc框架
ember中文完整版,唯一一个中文版的ember全面的学习材料
为您提供Ember.js MVC 框架下载,Ember.js是一个用于创建 web 应用的 JavaScript MVC 框架,采用基于字符串的Handlebars 模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由...
ember.js,一个构建“雄心勃勃”的应用程序的javascript框架。相对于angularjs稳定性更高一些。基于模版的开发方式让你重新认识编码方式。此处仅提供ember.js和handlebar.js资源文件。jquery请自行下载。注意ember只...