成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面

pinecone / 2484人閱讀

摘要:原文環(huán)境搭建以及使用創(chuàng)建第一個(gè)靜態(tài)頁面本篇將為讀者介紹項(xiàng)目開發(fā)環(huán)境的搭建,并創(chuàng)建一個(gè)靜態(tài)頁面。在文件中增加如下內(nèi)容使用快捷鍵關(guān)閉在用命令啟動(dòng)項(xiàng)目。創(chuàng)建一個(gè)模板仍然是使用命令創(chuàng)建模板。

原文:環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面

本篇將為讀者介紹Ember項(xiàng)目開發(fā)環(huán)境的搭建,并創(chuàng)建一個(gè)靜態(tài)頁面。

安裝Ember CLI

本教程使用的是2.4.3版本的Ember CLI工具集,如果你的是1.13.8版本在啟動(dòng)項(xiàng)目時(shí)會(huì)提示如下錯(cuò)誤:

Future versions of Ember CLI will not support v5.9.1. Please update to Node 0.12 or io.js.

但是項(xiàng)目仍然可以正常訪問,不過建議還是升級到2.4.3版本,省得出現(xiàn)未知錯(cuò)誤不好解決。
升級命令:npm install -g [email protected]

查看ember命令是否安裝成功,在終端或者控制臺下輸入下面的命令

ember -v

如果出現(xiàn)如下信息說明環(huán)境搭建成功。

version: 2.4.3
node: 5.9.1
npm: 2.13.4
os: darwin x64

如果你用的電腦不是Mac最后一行os有所不同,這個(gè)不要緊。第一行是Ember CLI的版本號,第二行是node的版本號,第三行是npm的版本號,最后一個(gè)是系統(tǒng)版本。

注意

如果你的執(zhí)行ember -v得不到上述的版本信息也不要緊,仍然按照下面的教程新建項(xiàng)目新建完成項(xiàng)目之后再更行Ember CLI的版本,更新教程請參考Could this be a shame in the making?,只需要根據(jù)Project Update部分更新項(xiàng)目即可,更新到最后一步ember init時(shí)候會(huì)如下確認(rèn)信息,全部y即可。

? Overwrite .travis.yml? Yes, overwrite
? Overwrite .watchmanconfig? Yes, overwrite
? Overwrite README.md? Yes, overwrite
? Overwrite app/app.js? Yes, overwrite
? Overwrite app/index.html? Yes, overwrite
? Overwrite app/router.js? Yes, overwrite
? Overwrite bower.json? Yes, overwrite
? Overwrite ember-cli-build.js? Yes, overwrite
? Overwrite package.json? Yes, overwrite
? Overwrite tests/helpers/resolver.js? Yes, overwrite
? Overwrite tests/helpers/start-app.js? Yes, overwrite
? Overwrite tests/index.html? Yes, overwrite

更新過程可能還會(huì)出現(xiàn)如下選擇版本的問題,請根據(jù)下面例子選擇:

Installed packages for tooling via npm.
  conflict Unable to find suitable version for qunit-notifications
    1) qunit-notifications ~0.0.6
    2) qunit-notifications ~0.1.0
? Answer 2
  conflict Unable to find suitable version for ember
    1) ember >= 1.8.1 < 2.0.0
    2) ember >=1.4 <2
    3) ember > 1.5.0-beta.3
    4) ember ~2.4.3
    5) ember >=1.4
? Answer 4
Installed browser packages via Bower.

最后驗(yàn)證是否更新成功,執(zhí)行ember -v會(huì)得到如下版本信息:

ubuntuvimdeMacBook-Pro:library-app ubuntuvim$ ember -v
ember-cli: 2.4.3
node: 5.9.1
os: darwin x64

更多有關(guān)開發(fā)環(huán)境的詳細(xì)介紹請看www.ember-cli.com。

創(chuàng)建一個(gè)新項(xiàng)目

安裝好開發(fā)環(huán)境之后,直接使用Ember CLI命令創(chuàng)建新項(xiàng)目。下面是創(chuàng)建命令:

ember new library-app

等待命令執(zhí)行完成,安裝過程需要下載所必須的npm插件,跟網(wǎng)絡(luò)有關(guān)系,請耐心等待。

運(yùn)行項(xiàng)目

等待項(xiàng)目創(chuàng)建完成之后就可以直接使用命令運(yùn)行項(xiàng)目了,首先進(jìn)入項(xiàng)目目錄下,然后執(zhí)行ember cli命令運(yùn)行項(xiàng)目。

//  進(jìn)入項(xiàng)目目錄下
cd library-app
//  執(zhí)行啟動(dòng)命令
ember server

//的內(nèi)容為注釋,請直接忽略。

等待啟動(dòng)完畢后,打開瀏覽器執(zhí)行http://localhost:4200,如果能在頁面上看到Welcome to Ember說明項(xiàng)目創(chuàng)建成功。并且可以在瀏覽器控制臺上看到如下圖的日志信息:

開啟調(diào)試模式

在開發(fā)階段最好是把打開調(diào)試模式,開啟之后可以在瀏覽器的控制臺下看到ember項(xiàng)目執(zhí)行過程的相關(guān)信息,有助于發(fā)現(xiàn)問題。
修改library-app/config/environment.js文件的內(nèi)容,在下面代碼段中增加配置:

// ……
if (environment === "development") {
  // ENV.APP.LOG_RESOLVER = true;
  ENV.APP.LOG_ACTIVE_GENERATION = true;
  ENV.APP.LOG_TRANSITIONS = true;
  ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
  ENV.APP.LOG_VIEW_LOOKUPS = true;
}
//……

重啟項(xiàng)目(按Ctrl+C終止在執(zhí)行ember servere),必須重啟才能其效果,可以在瀏覽器控制臺看到了很多的日志信息。比如下圖

添加Bootstrap和Sass到項(xiàng)目中

為了美化項(xiàng)目界面引入Bootstrap,這兩個(gè)插件的安裝也是直接使用Ember CLI命令安裝,命令如下:

ember install ember-cli-sass
ember install ember-cli-bootstrap-sassy

等待安裝完成之后可以在項(xiàng)目目錄下的pachage.jsonbower.json看到這兩個(gè)插件的配置信息。

//  bower.json
"bootstrap-sass": "^3.3.6"
// package.json
"ember-cli-sass": "5.3.1"

在項(xiàng)目下增加樣式文件

創(chuàng)建文件library-app/app/styles/app.scss,如果項(xiàng)目已經(jīng)存在文件library-app/app/styles/app.css則重命名為app.scss,樣式會(huì)被Ember CLI引入到項(xiàng)目中。
在文件中增加如下內(nèi)容:

@import "bootstrap";

使用快捷鍵Ctrl+C關(guān)閉在用命令ember server啟動(dòng)項(xiàng)目。如果終端沒出現(xiàn)錯(cuò)誤說明配置是正確的。那么請繼續(xù)往下看!!

創(chuàng)建項(xiàng)目導(dǎo)航條

在前面引入的了Bootstrap之后我們就可以在頁面中直接使用了,并且不需要再在頁面上引入相關(guān)的cssjs文件。
打開文件library-app/app/templates/application.hbs,清空原有代碼再添加如下代碼:

{{partial "navbar"}} {{outlet}}

Ember.js項(xiàng)目的頁面使用的是Handlebarsjs模板,{{}}是模板的語法。在Ember.js的官方參考教程中有一章是專門介紹如何使用Handlebarsjs模板的,或者根據(jù)Ember.js 入門指南之八handlebars基礎(chǔ)學(xué)習(xí)。
在上述代碼中{{partial}}是一個(gè)ember helper可以用于調(diào)用模板,這里就是調(diào)用了模板navbar,不過這個(gè)功能在2.4的參考文檔中移除了可以在1.13.0的文檔中看到,更多有關(guān)信息請看參考網(wǎng)址。
代碼中{{outlet}}也是一個(gè)helper,但是這個(gè)是一個(gè)特殊的helper,你可以把這個(gè)helper理解為一個(gè)占位符。所有子模板都會(huì)渲染到{{outlet}}所在的位置。更多信息請看Ember.js 入門指南之十四番外篇,路由、模板的執(zhí)行、渲染順序。

創(chuàng)建一個(gè)模板

仍然是使用命令創(chuàng)建模板。

ember g template navbar

等待命令執(zhí)行完畢之后可以看到library-app/app/templates/navbar.hbs這個(gè)文件。下面在文件中增加一個(gè)導(dǎo)航條。

代碼中{{link-to}}是Handlebars模板的標(biāo)簽,在第一個(gè){{link-to}}標(biāo)簽中index是一個(gè)路由的名字,模板被編譯之后這個(gè)標(biāo)簽就轉(zhuǎn)成一個(gè)普遍HTML標(biāo)簽的,如果你想指定編譯之后的標(biāo)簽名請使用屬性tagName指定,比如上述代碼的第二個(gè)link-to標(biāo)簽,在后面的文章中會(huì)使用組件(component)重構(gòu)這個(gè)標(biāo)簽。
為了美化界面在頁面的頂部加了css的填充,修改樣式文件app.scss。

@import "bootstrap";

body {
    padding-top: 20px;
}

等待項(xiàng)目重啟完成,可以在頁面上看到黑色的導(dǎo)航條,好像我們并且沒有在任何地方使用這個(gè)模板navbar,為何能在首頁上顯示呢??其實(shí)我們已經(jīng)在application.hbs中調(diào)用了!在這個(gè)模板中有這樣一句代碼{{partial "navbar"}},在此根據(jù)模板名調(diào)用了模板navbar。如果刪除了application.hbs中的{{partial}}界面上就什么都不顯示了!請讀者自行實(shí)驗(yàn)。

創(chuàng)建關(guān)于界面并在導(dǎo)航菜單上增加一個(gè)菜單項(xiàng)

同樣的,使用Ember CLI命令創(chuàng)建一個(gè)路由(route),有關(guān)路由的信息可以查看官方參考文檔或者直接看教程Ember.js 入門指南之二十路由定義,文章上有詳細(xì)的介紹,歡迎閱讀!執(zhí)行下面的命令創(chuàng)建路由,創(chuàng)建路由的過程中會(huì)同時(shí)創(chuàng)建路由對應(yīng)的模板,所以執(zhí)行一個(gè)命令會(huì)得到2個(gè)文件:app/templates/about.hbs、app/routes/about.js,同時(shí)會(huì)在app/router.js中app/自動(dòng)增加一條路由配置語句this.route("about");。然后在模板about.hbs中增加一些信息:

{{! app/templates/about.hbs }}

# About Page

等待項(xiàng)目重啟完成,執(zhí)行http://localhost:4200/about可以看到剛剛在模板about.hbs中增加的信息。

但是"About Page"怎么會(huì)顯示在導(dǎo)航條下方呢?好像并沒有指定啊,也沒有想前面那樣使用表達(dá)式{{partial}}調(diào)用模板,有關(guān)這個(gè)內(nèi)容的介紹請看Ember.js 入門指南之十四番外篇,路由、模板的執(zhí)行、渲染順序,還記得在主模板application.hbs中的{{outlet}}嗎?除了application.hbs之外的所有模板都是子模板,子模板會(huì)自動(dòng)渲染到父模板的{{outlet}}上。但是是如何觸發(fā)顯示的呢?很簡單,因?yàn)槲覀冊L問了about這個(gè)路由,路由會(huì)自動(dòng)根據(jù)名字查找到同名的模板并顯示(Ember默認(rèn)規(guī)則)。

再創(chuàng)建一個(gè)模板index,仍然是使用Ember CLI命令創(chuàng)建,執(zhí)行命令:ember g template index,得到模板后再模板內(nèi)添加一些內(nèi)容:

{{! app/templates/index.hbs}}

# Home Page

然后執(zhí)行http://localhost:4200/,神奇的事情發(fā)生了,可以直接看到模板index的內(nèi)容,并且并沒有訪問http://localhost:4200/index。這又是為什么呢?請看Ember.js 入門指南之二十路由定義中關(guān)于index路由的解釋。簡單講,index路由就是每個(gè)路由默認(rèn)首頁路由,不需要手動(dòng)創(chuàng)建,這個(gè)路由對應(yīng)的URL是/,當(dāng)你執(zhí)行http://localhost:4200/時(shí)候?qū)嶋H就是執(zhí)行http://localhost:4200/index然后渲染的模板就是index.hbs,所以就得到界面顯示的效果。
然后在導(dǎo)航欄上在添加一個(gè)鏈接,最后得打如下代碼(前后部分代碼省略):

等待項(xiàng)目重啟完成,可以看到導(dǎo)航欄上多了一項(xiàng),并且點(diǎn)擊“Home”和“About”看到顯示不同的內(nèi)容。效果如下圖:

到此教程第一篇介紹完畢,如果你看過官方參考文件或者是看過ember teach上的教程理解起來應(yīng)該是沒難度的!多一份耐心就多一份收獲。

家庭作業(yè)

最后給你留了一份作業(yè),想學(xué)好就必須要?jiǎng)邮謱?shí)踐才行?。。?!

作業(yè)內(nèi)容:

創(chuàng)建一個(gè)名為contact的路由和模板

在導(dǎo)航菜單上增加一個(gè)菜單項(xiàng)"Contact",并且點(diǎn)擊這個(gè)菜單項(xiàng)看到的是模板contact.hbs的內(nèi)容。

為了照顧懶人我把完整的代碼放在GitHub上,如有需要請參考參考。博文經(jīng)過多次修改,博文上的代碼與github代碼可能有出入,不過影響不大!如果你覺得博文對你有點(diǎn)用,請?jiān)趃ithub項(xiàng)目上給我點(diǎn)個(gè)star吧。您的肯定對我來說是最大的動(dòng)力??!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79486.html

相關(guān)文章

  • 如何構(gòu)建一個(gè)復(fù)雜的Ember.js項(xiàng)目

    摘要:本系列教材將為讀者介紹怎么樣使用構(gòu)建一個(gè)復(fù)雜的項(xiàng)目。本教程分為個(gè)小部分,通過這篇文章一步步為你講解怎么使用構(gòu)建一個(gè)稍微復(fù)雜的項(xiàng)目。說明本教程是基于而作,請注意與你自己的版本區(qū)別,如果出現(xiàn)不兼容問題請自行升級項(xiàng)目。 文章來源:http://xcoding.tech/tags/Ember-Demo/ 聲明:希望本系列教程能幫助更多學(xué)習(xí)Ember.js的初學(xué)者。 本系列教材將為讀者介紹怎么樣...

    djfml 評論0 收藏0
  • 從服務(wù)器獲取數(shù)據(jù),引入組件

    摘要:博文原址從服務(wù)器獲取數(shù)據(jù),引入組件接著前面四篇環(huán)境搭建以及使用創(chuàng)建第一個(gè)靜態(tài)頁面引入計(jì)算屬性動(dòng)態(tài)內(nèi)容模型,保存數(shù)據(jù)到數(shù)據(jù)庫發(fā)布項(xiàng)目,加入功能清理模板,使用組件重構(gòu)版本之后組件會(huì)越來越重要。 博文原址:從服務(wù)器獲取數(shù)據(jù),引入組件 接著前面四篇: 環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面 引入計(jì)算屬性、action、動(dòng)態(tài)內(nèi)容 模型,保存數(shù)據(jù)到數(shù)據(jù)庫 發(fā)布項(xiàng)目,加入CRUD功能 ...

    codecook 評論0 收藏0
  • 發(fā)布項(xiàng)目,加入CRUD功能

    摘要:文章來源發(fā)布項(xiàng)目,加入功能接著前面三篇環(huán)境搭建以及使用創(chuàng)建第一個(gè)靜態(tài)頁面引入計(jì)算屬性動(dòng)態(tài)內(nèi)容模型,保存數(shù)據(jù)到數(shù)據(jù)庫應(yīng)用發(fā)布發(fā)布方式一發(fā)布的詳細(xì)教程請看。執(zhí)行如下命令發(fā)布項(xiàng)目。 文章來源:發(fā)布項(xiàng)目,加入CRUD功能 接著前面三篇: 環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面 引入計(jì)算屬性、action、動(dòng)態(tài)內(nèi)容 模型,保存數(shù)據(jù)到數(shù)據(jù)庫 應(yīng)用發(fā)布 發(fā)布方式一 發(fā)布的詳細(xì)教程請看...

    Genng 評論0 收藏0
  • 模型,保存數(shù)據(jù)到數(shù)據(jù)庫

    摘要:文章來源模型,保存數(shù)據(jù)到數(shù)據(jù)庫環(huán)境搭建以及使用創(chuàng)建第一個(gè)靜態(tài)頁面引入計(jì)算屬性動(dòng)態(tài)內(nèi)容繼續(xù)為讀者介紹如何使用構(gòu)建一個(gè)完整的復(fù)雜的項(xiàng)目。 文章來源:模型,保存數(shù)據(jù)到數(shù)據(jù)庫 環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面 引入計(jì)算屬性、action、動(dòng)態(tài)內(nèi)容 繼續(xù)為讀者介紹如何使用Ember構(gòu)建一個(gè)完整的、復(fù)雜的項(xiàng)目。 第一個(gè)Ember.js模型 在前面兩篇中實(shí)現(xiàn)了如何獲取界面輸入的...

    paulli3 評論0 收藏0
  • 模型高級特性,引入模型關(guān)聯(lián)關(guān)系

    摘要:創(chuàng)建模型并設(shè)置關(guān)聯(lián)關(guān)聯(lián)關(guān)系設(shè)置模型關(guān)系一個(gè)對應(yīng)多個(gè),一個(gè)對應(yīng)多個(gè)。手動(dòng)在中增加關(guān)聯(lián)關(guān)系。并且是實(shí)現(xiàn)了數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,比如一個(gè)對應(yīng)多個(gè),如下圖。 文章來源:模型高級特性,引入模型關(guān)聯(lián)關(guān)系 接著前面五篇: 環(huán)境搭建以及使用Ember.js創(chuàng)建第一個(gè)靜態(tài)頁面 引入計(jì)算屬性、action、動(dòng)態(tài)內(nèi)容 模型,保存數(shù)據(jù)到數(shù)據(jù)庫 發(fā)布項(xiàng)目,加入CRUD功能 從服務(wù)器獲取數(shù)據(jù),引入組件 前言 ...

    raise_yang 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<