成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

走進(jìn) Ember.js

開(kāi)發(fā) 前端
現(xiàn)在有很多的JavaScript庫(kù),大部分庫(kù)都滿足了你的網(wǎng)站有關(guān)DOM的操作。但是當(dāng)前迫切需要去管理單個(gè)應(yīng)用的代碼,這就是為什么新的框架產(chǎn)生啦。

現(xiàn)在有很多的JavaScript庫(kù),大部分庫(kù)都滿足了你的網(wǎng)站有關(guān)DOM的操作。但是當(dāng)前迫切需要去管理單個(gè)應(yīng)用的代碼,這就是為什么新的框架產(chǎn)生啦。

"古話說(shuō)的好:刀要用在刀刃上。"

Ember.js不想傳統(tǒng)的JQuery那樣,不能給你很好的桌面體驗(yàn),沒(méi)有相關(guān) 用列,缺少數(shù)據(jù)綁定,事件,狀態(tài)管理。總的來(lái)說(shuō),你可能可以拼湊相關(guān)的插件去實(shí)現(xiàn)這些功能。但是,現(xiàn)在開(kāi)始有專門的框架出現(xiàn)去解決這些專業(yè)問(wèn)題。以我看 來(lái),是多么完美的事情啊。古話說(shuō)的好:"刀要用在刀刃上。"

我最近采訪了Ember.js團(tuán)隊(duì);那是多么的讓人激動(dòng)人心,去知道了解最新的,最熱的:Ember.js

Ember實(shí)現(xiàn)了我上面已經(jīng)描述的功能,它如此的流行讓我想起JQuery怎么讓開(kāi)發(fā)者快速的入門 。團(tuán)隊(duì)在設(shè)計(jì)方法,采取措施并抽象了很多復(fù)雜性和依靠在大型應(yīng)用多年的實(shí)踐經(jīng)驗(yàn),建立了模型/視圖/控制器在應(yīng)用方面。

通過(guò)多部分文章的介紹(它會(huì)逐漸介紹這個(gè)框架的核心概念),我想要讓你加快了解Ember.js。

開(kāi)始我們以普通的介紹(這篇文章就有介紹),逐漸去創(chuàng)建完善一個(gè)完整的項(xiàng)目。通過(guò)我對(duì)有些概念理解,我想讓你去加強(qiáng)一些核心概念的理解。通過(guò)這種方式,并 且可能學(xué)習(xí)到一些新的技術(shù)。我已經(jīng)盡自己最大的可能讓Ember.js團(tuán)隊(duì)的評(píng)審這篇文件的可能性和準(zhǔn)確性,并提出一下寶貴的意見(jiàn)。

在我們開(kāi)始之前,有一句話:Ember.js對(duì)我來(lái)說(shuō)做了這么多神奇的事情。當(dāng)我有時(shí)候看見(jiàn)代碼,自言自語(yǔ)到:"哇,這是怎么做到的啊."我在這里盡我最 大的可能去介紹,但是我不會(huì)深入介紹Ember’s框架的源代碼,我將會(huì)討論如果通過(guò)它的API和工具去創(chuàng)建你的應(yīng)用。

因此,我們開(kāi)始那一步把。

核心概念

Ember.js對(duì)傳統(tǒng)網(wǎng)站來(lái)說(shuō)并不是一個(gè)單純的框架

第一件事最好牢記心中,Ember.js對(duì)傳統(tǒng)網(wǎng)站來(lái)說(shuō)不是一個(gè)單純的框架。JQuery和MooTools對(duì)傳統(tǒng)網(wǎng)站來(lái)說(shuō)更適合。如何你考慮 Ember.js,你的關(guān)注點(diǎn)是可擴(kuò)展的桌面體驗(yàn)。事實(shí)上,框架的口號(hào)創(chuàng)建一個(gè)完美的Web的應(yīng)用,這就清楚的告訴你這不是一個(gè)Javascript父框 架。

我原先提到Ember利用了MVC模式,有利于代碼的管理和組織。假如你從來(lái)沒(méi)有MVC開(kāi)發(fā)基礎(chǔ),首先你要讀懂這個(gè)的概念。Nettuts+上面有很多很 好的文章對(duì)這個(gè)主題。當(dāng)你熟悉了這些概念,你會(huì)一目了然。,我常常聽(tīng)說(shuō)將后臺(tái)改造成Ember.js事實(shí)上非常簡(jiǎn)單的一件事情。因?yàn)镋mber已經(jīng)做了很 多繁重的事情為你,但是開(kāi)發(fā)者必須已經(jīng)習(xí)慣代碼結(jié)構(gòu)啦

Ember同樣也依賴客戶端模版...有很多。它使用了 Handlebars模版框架,通過(guò)一系列表達(dá)式,這個(gè)框架可以為你創(chuàng)建動(dòng)態(tài)的HTML頁(yè)面。對(duì)這些嵌入式的頁(yè)面表達(dá)式,Ember開(kāi)發(fā)者能夠綁定數(shù)據(jù),并且快速動(dòng)態(tài)改變它們的展示。舉個(gè)例子來(lái)說(shuō),我創(chuàng)建一個(gè)模版,能夠接受一個(gè)people的數(shù)組和并且無(wú)序的展示它們:

  1. <ul> 
  2.  {{#each people}} 
  3.    <li>Hello, {{name}}!</li> 
  4.  {{/each}} 
  5. </ul> 

注意:"#each"是一個(gè)循環(huán)表達(dá)式,列舉每一個(gè)"people"數(shù)組元素,并且替代了"{{name}}"這個(gè)表達(dá)式用一個(gè)真正的值。重要的一點(diǎn)需要注意是{{}}語(yǔ)法是由Handebars去驗(yàn)證表達(dá)式的。這是一個(gè)簡(jiǎn)單的例子,我以后會(huì)深入詳細(xì)的介紹它。

Handlebars 是一個(gè)強(qiáng)大的客戶端模版引擎。我推薦不僅僅是查看The Ember向?qū)?而且它自己本身的網(wǎng)站起獲取充分有用的信息。你會(huì)很好的使用它。

配置Ember

Eember.js 依賴傳統(tǒng)的類庫(kù)例如 JQuery 和 Handlerbars 。

但是稍等一下,難道我不是說(shuō)過(guò)JQuery和Ember運(yùn)用在不同的地方嗎?是的,我說(shuō)過(guò)。但是這里有一些情況,Ember團(tuán)隊(duì)不想再去重復(fù)創(chuàng)建輪子了.他們選擇JQuery,因?yàn)镴Query是最好的方式去操作DOM,這是一件相當(dāng)完美的事情.同樣的道理,他們?yōu)槭裁慈ミx擇Handlerbars,因?yàn)樗且粋€(gè)相當(dāng)不錯(cuò)的模版,有Yehuda Katz來(lái)是實(shí)現(xiàn),他是Ember的核心開(kāi)發(fā)人員之一。

通過(guò)Github依賴庫(kù)這個(gè)工具,我們可以通過(guò)非常簡(jiǎn)單的方式去抓取到我們需要的Ember.js。這是一個(gè)簡(jiǎn)單開(kāi)始的例子。到目前位置,它包含

  • Ember 1.0 RC1
  • Handlerbars 1.0 RC3
  • jQuery 1.9.1

現(xiàn)在有一個(gè)基本的html頁(yè)面模版,它包含所有相關(guān)的框架(JQuery,Ember等)。并且包括一個(gè)Handlebars例子和一個(gè)基本的Ember的應(yīng)用,這個(gè)應(yīng)用叫"app.js"。

  1. <script src="js/libs/jquery-1.9.1.js"></script> 
  2. <script src="js/libs/handlebars-1.0.0-rc.3.js"></script> 
  3. <script src="js/libs/ember-1.0.0-rc.1.js"></script> 
  4. <script src="js/app.js"></script> 

Ember相關(guān)

在我們開(kāi)始編寫代碼前,理解Ember.js工作原理是非常重要的。你聚集相關(guān)模塊組成你的Ember應(yīng)用。讓我們看看其它部分和他們之間的相關(guān)聯(lián)系。

模版

對(duì)你的接口來(lái)說(shuō),模版是一個(gè)關(guān)鍵的部分。 正如我原先提到的, Handlebars是一個(gè)客戶端框架被用在Ember里面。對(duì)你的應(yīng)用來(lái)說(shuō),表達(dá)式可以擴(kuò)展,當(dāng)你創(chuàng)建界面的時(shí)候。 這里有一個(gè)簡(jiǎn)單的例子::

  1. <script type="text/x-handlebars"> 
  2.      <h2><strong>{{firstName}} {{lastName}}</strong></h2> 
  3. </script> 

注意:通過(guò)Ember,表達(dá)式組成了HTML頁(yè)面,可以動(dòng)態(tài)的改變頁(yè)面的內(nèi)容。在這個(gè)例子中, {{firstName}} 和 {{lastName}} 占位符在應(yīng)用中將會(huì)被數(shù)據(jù)替代。

通過(guò)靈活的API,Handlebars 可以提供強(qiáng)大的功能。它提供什么功能對(duì)你來(lái)說(shuō)是非常重要。

#p#

路由

一個(gè)應(yīng)用的路由幫助管理應(yīng)用的狀態(tài)

一個(gè)應(yīng)用的路由幫助管理應(yīng)用的狀態(tài)和相關(guān)資源需要被用戶導(dǎo)航。路由可以包含相關(guān)任務(wù)例如從模型中獲取數(shù)據(jù),轉(zhuǎn)化控制去視圖,或者展示模版。

在你的應(yīng)用中,你能夠創(chuàng)建一個(gè)路由為特定的坐標(biāo)。路由指定應(yīng)用的部分和URLs相關(guān)去它們。URL是關(guān)鍵標(biāo)識(shí)符,Ember判斷哪個(gè)應(yīng)用狀態(tài)需要展現(xiàn)給用戶通過(guò)它。

  1. App.Router.map( function() { 
  2.    this.route( 'about' ); // Takes us to "/about" 
  3. }); 

當(dāng)用戶導(dǎo)航專門的URL的時(shí)候,Ember實(shí)例化路由管理著路由的行為(例如:從模型請(qǐng)求數(shù)據(jù))。一個(gè)例子從模型請(qǐng)求數(shù)據(jù),像這樣:

  1. App.EmployeesRoute = Ember.Route.extend({ 
  2.    model: function() { 
  3.        return App.Employee.find(); 
  4.    } 
  5. }); 

在這個(gè)例子中,當(dāng)用戶導(dǎo)航應(yīng)用"/employees"這個(gè)欄目時(shí),路由會(huì)發(fā)出請(qǐng)求到模型獲取到所有雇員的信息

模型

一個(gè)對(duì)象數(shù)據(jù)展示。

在你的應(yīng)用中,模型被應(yīng)用作為一個(gè)對(duì)象的數(shù)據(jù)展示。它可以是一個(gè)簡(jiǎn)單的數(shù)組格式,數(shù)據(jù)可以通過(guò)AJAX請(qǐng)求動(dòng)態(tài)的從RESTful JSON API獲取到。在你的應(yīng)用中, Ember Data 框架提供了載入,映射和更新數(shù)據(jù)去模型。

 視圖

在Ember.js里面,視圖管理著事件。當(dāng)用戶和應(yīng)用之間互相交互時(shí),視圖轉(zhuǎn)換它們,是它們能夠讓應(yīng)用清楚的事件。所以,假如用戶點(diǎn)擊了刪除Employee的按鈕,視圖就是解析了這個(gè)點(diǎn)擊按鈕并且處理它在應(yīng)用當(dāng)前的的狀態(tài)中。

命名約定

Ember.js 通過(guò)命名約定這種方式方式,最少的節(jié)約代碼的縮寫。你定義路由(資源)的方式影響了控制,模型,視圖和模版的命名。例如,我創(chuàng)造route,叫做"employees":

控制

控制常常被用作存儲(chǔ)和替代模型數(shù)據(jù)和屬性。它們常常扮演代理角色,給你有訪問(wèn)模型屬性的權(quán)限和允許模型去訪問(wèn)他們和展示他們。這就是為什么模型常常被用作去控制相關(guān)。

最主要的一件事情要記住,當(dāng)模型抓取數(shù)據(jù)的時(shí)候,控制自動(dòng)暴露了相關(guān)你應(yīng)用的數(shù)據(jù)。這樣似乎看起來(lái)模版和控制非常的緊密。事實(shí)上,模型,它們也沒(méi)有相關(guān)知識(shí),只是對(duì)控制來(lái)說(shuō),會(huì)在以后使用到。

你能夠存儲(chǔ)你的應(yīng)用屬性并將需要的持久化,而且不必要被保存到服務(wù)器上。

  1. App.Router.map( function() { 
  2.    this.resource( 'employees' ); 
  3. }); 

我將要命名我的組件,像這樣:

  • 路由對(duì)象: App.EmployeesRoute
  • 控制: App.EmployeesController
  • 模型: App.Employee
  • 視圖: App.EmployeesView
  • 模版: employees

原文鏈接:http://net.tutsplus.com/tutorials/javascript-ajax/getting-into-ember-js/

譯文鏈接:http://www.oschina.net/translate/getting-into-ember-js?cmp

責(zé)任編輯:陳四芳 來(lái)源: 開(kāi)源中國(guó)編譯
相關(guān)推薦

2013-12-24 15:56:20

2013-12-24 16:03:26

Ember.js視圖

2013-12-24 14:50:39

Ember.js框架

2013-12-20 14:47:23

ember.js

2013-09-10 14:01:40

WebEmber.jsAngular.js

2016-11-14 15:51:42

JavaScriptAngular.jsReact.js

2013-10-16 10:11:35

JavaScript項(xiàng)目框架

2014-03-13 11:22:00

JavaScriptJS框架

2013-12-25 09:53:22

Ember.js應(yīng)用

2016-11-01 19:10:33

vue.js前端前端框架

2020-08-11 09:47:30

JS閉包代碼

2013-12-25 10:08:42

ember.js異步處理

2013-12-24 13:20:28

EmberEmber.js

2013-05-30 15:16:26

javaScriptMVC模式

2019-11-29 09:30:37

Three.js3D前端

2011-07-27 22:01:46

Sencha ToucHtml 5

2019-05-13 16:26:27

黑客黑客組織OilRig

2012-10-31 10:31:23

云安全公有云云計(jì)算

2009-12-09 13:41:50

PHP Zend框架

2011-10-26 10:10:34

線程同步
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www狠狠爱com | 日韩精品视频网 | 亚洲性综合网 | 亚洲国产成人精品一区二区 | 97色在线观看免费视频 | 亚洲欧美日韩精品久久亚洲区 | 四季久久免费一区二区三区四区 | 国产欧美日韩在线观看 | 一区二区三区av夏目彩春 | 超碰在线播 | 97视频精品 | 在线a视频| 国产精品永久免费视频 | 一区二区三区在线免费观看 | 亚洲一区二区成人 | 亚洲精品在线看 | 久久久久国产一区二区三区 | 免费影视在线观看 | 亚洲免费一区二区 | 亚洲一区视频在线播放 | 成年免费大片黄在线观看岛国 | 国产日韩欧美精品 | 超碰精品在线 | 国产精品99久久久久久大便 | 亚洲精品乱码久久久久久9色 | 天天干com | 久久久久免费精品国产 | 天天操天天射综合网 | 五月天国产视频 | 国产精品18毛片一区二区 | 草比网站 | 亚洲精品久久久蜜桃 | 日屁视频 | 波多野结衣电影一区 | www.97国产| 国产精品免费视频一区 | 久久国产精品视频 | 久草电影网| 久久久一区二区 | 久久精品综合 | 日韩欧美一级精品久久 |