1. 程式人生 > >Ember.js 入門指南——處理事件

Ember.js 入門指南——處理事件

ber.js 指南——處理事件

       你可以在元件中響應事件,比如使用者的雙擊、滑鼠滑過、鍵盤的按下等等事件。只需要在元件類中增加Ember提供的處理事件,然後Ember會自動判斷使用者的操作執行相應的事件,只要在元件類中新增的事件不衝突你甚至一次性增加多個事件,事件執行次序根據觸發的次序執行。

1,簡單事件處理

準備工作,使用Ember CLI建立演示所需檔案:

ember g component handle-events
ember g route component-route
生成的元件模板不做任何修改。
<!--  app/components/handle-events.hbs -->
 
{{yield}}

注意看元件類的實現:

//  app/components/handle-events.js
 
import Ember from 'ember';
 
export default Ember.Component.extend({
       click: function() {
              alert('click...');
 
              return true;  // 返回true允許事件冒泡到父元件
       },
       mouseLeave: function() {
              alert("mouseDown....");
 
              return true;
       }
});

    ​在元件類中增加了兩個事件clickmouseLeaver,一個是單擊事件一個是滑鼠移開事件,更多Ember支援的事件請看這裡

       呼叫元件的模板如下:

<!--  app/templates/component-route.hbs  -->
 
{{#handle-events}}
<span style="cursor: pointer;">從我身上飄過或者點我都會觸發事件~</span>
{{/handle-events}}

       當用戶只是把滑鼠從文字從我身上飄過或者點我都會觸發事件~”上劃過市只執行mouseLeave事件,當用戶點選文字時先執行

click事件再執行mouseLeave事件,因為使用者點選文字時滑鼠還沒移開。

       但是如果你增加的事件是有衝突的可能會得到無法預知的結果,比如在元件類中增加了雙擊和單擊事件,此時只會執行單擊事件,雙擊事件就無法觸發。

2,傳送行為

某些情況下,你的元件需要支援拖放事件。比如元件可能要傳送一個iddrop事件中。

{{drop-target action=”didDrop”}}    

       你可以定義元件的事件處理器去管理drop事件。如果有需要可以通過返回false防止事件冒泡。

//  app/components/drop-target.js
 
import Ember from 'ember';
 
export default Ember.Component.extend({
       attribuBindings: ['draggable'],
       draggable: 'true',
 
       dragOver: function() {
              return false;
       },
       didDrop: function(event) {
              let id = event.dataTransfer.getData('text/data');
              this.sendAction('action', id);
       }
});

       本章內容不多,重點是第一點的內容,第二點的內容就簡單介紹,更多詳細資訊請移步官網文件

相關推薦

Ember.js 入門指南——處理事件

ber.js 入門指南——處理事件        你可以在元件中響應事件,比如使用者的雙擊、滑鼠滑過、鍵盤的按下等等事件。只需要在元件類中增加Ember提供的處理事件,然後Ember會自動判斷使用者的操作執行相應的事件,只要在元件類中新增的事件不衝突你甚至一次性增加多個

Ember.js 入門指南 (二)

@(Ember)[MVVM|前端框架|HTML桌面應用] 序言 經常有人質疑,在前端搞MV*有什麼意義?也有人跟我提出這樣的疑問:以AngularJS,Knockout,BackBone為代表的MV*框架,它跟jQuery有什麼區別?我jQuery用

Ember.js 入門指南——控制器(controller)

ember new chapter5_controllers cd chapter5_controllers ember server 從本篇開始進入第五章控制器,controller在Ember2.0開始越來越精簡了,職責也更加單一——處理邏輯。 下面是準備工作。

Ember.js 入門指南——非同步路由

本文將為你介紹路由的高階特性,這些高階特性可以用於處理專案複雜的非同步邏輯。 關於單詞promises,直譯是承諾,但是個人覺得還是使用原文吧。讀起來順暢點。 1,promises(承諾)        Ember的路由處理非同步邏輯的方式是使用promises。簡

Ember.js 入門指南——元件定義

    不得不說,Ember的更新是在是太快了!!本教程還沒寫到一半就又更新到v2.1.0了!!!!不過為了統一還是使用官方v2.0.0的參考文件!!        從本篇開始進入新的一章——元件。這一章將用6篇文章介紹Ember的元件,從它的定義開始知道它的使用方式,

Ember.js 入門指南——路由定義

    當你的應用啟動的時候,路由器就會匹配當前的URL到你定義的路由上。然後按照定義的路由層次逐個載入資料、設定應用程式狀態、渲染路由對應的模板。 1,基本路由         在app/router.js的map方法裡定義的路由會對映到當前的URL。當map方法被

Ember.js 入門指南——新建、更新、刪除記錄

前一篇介紹了查詢方法,本篇介紹新建、更新、刪除記錄的方法。 本篇的示例程式碼建立在上一篇的基礎上。對於整合firebase、建立route和template請參看上一篇,增加一個controller:ember g controller articles。 1,新建

Ember.js 入門指南——{{action}} 助手

action助手所現實的功能與javascript裡的事件是相似的,都是通過使用者點選元素觸發定義在元素上的事件。Ember的action助手還允許你傳遞引數到對應的controller、component類,在controller或者component上處理事件的邏輯。

Ember.js 入門指南——工具類的助手

    本篇主要介紹格式轉換、自定義helper、自定義helper引數、狀態helper、HTML標籤轉義這幾個方面的東西。 按照文章慣例先準備好測試所需要的資料、檔案。仍然是使用Ember CLI命令,這次我們建立的是helper、controller、route

Ember.js 入門指南——繫結(bingding)

    ​正如其他的框架一樣Ember也包含了多種方式繫結實現,並且可以在任何一個物件上使用繫結。也就是說,繫結大多數情況都是使用在Ember框架本身,對於開發最好還是使用計算屬性。 1,雙向繫結 // 雙向繫結 Wife = Ember.Object.extend(

Ember.js 入門指南——路由切換的防止和重試

    在路由的切換過程中,Ember路由器會通過回撥(beforeModel、model、afterModel、redirect)解析一個transition物件到切換的下一路由中。任何一個回撥都可以通過傳遞過來的transition引數獲取transition物件,然

Ember.js 入門指南——表單元素

Ember提供的表單元素都是經過封裝的,封裝成了view元件。經過解析渲染之後就會生成普通的HTML標籤。更多詳細資訊你可以檢視他們的實現原始碼:Ember.TextField、Ember.Chechbox、Ember.TextArea。        按照慣例,先建

Ember.js 入門指南——{{link-to}} 助手

1,link-to助手常規使用 link-to助手錶達式渲染之後就是一個a標籤。而a標籤的href屬性的值是根據路由生成的,與路由的設定是息息相關的。並且每個設定的路由名稱都是有著對應的關係的。 為了演示效果,用命令生成了一個route(或者手動建立檔案)並獲取測試資

易學筆記-第2部分 Node.js入門指南/第5章 Node.js在幣圈流行麼

第2部分 Node.js入門指南/第5章 Node.js在幣圈流行麼/5.1 Node.js在開源社群很流行 Node.js在開源社群很流行 概念:JavaScript大部分專案都是建立在Node.js平臺之上的 在Github上專案採用的語言統計,JavaScr

three.js 入門指南(敷衍一下)

今天看了一本好書three.js,感覺特別適合我這種對three.js 瞭解不深的人。 其實要學習three.js,還有許多其他方面的知識要了解,例如如何繪製多邊形,如何繪製曲線,攝像機的一些基礎知識等等。 推薦一本老外的three.js指南 https://pan.baidu.com/

node js 入門指南

-type ctu tor tex UNC erp func ons 消息 一旦你已經安裝了 Node,讓我們嘗試構建第一個 Web 服務器。 請創建一個“app.js”文件,黏貼以下代碼: const http = require(‘http‘)

極簡 Node.js 入門 - 2.2 事件

> 極簡 Node.js 入門系列教程:[https://www.yuque.com/sunluyong/node](https://www.yuque.com/sunluyong/node) > > 本文更佳閱讀體驗:[https://www.yuque.com/sunluyong/node/events]

Vue.js新手入門指南

最近在逛各大網站,論壇,以及像SegmentFault等程式設計問答社群,發現Vue.js異常火爆,重複性的提問和內容也很多,樓主自己也趁著這個大前端的熱潮,著手學習了一段時間的Vue.js,目前用它正在做自己的結業專案。 在做的過程中也對Vue.js的官方文件以及其各種特性有了許多認識。作為一個之

pdf.js 入門使用指南4-手機端瀏覽pdf(touch.js)

經過測試,使用pdf.js這個開源庫,自己編寫程式碼實現pdf 檔案瀏覽也不是很複雜。參照我以前的blog文章,如果要實現上一頁,下一頁,旋轉等都非常簡單。 但是,手機端是個比較依賴手勢特殊存在。如果要實現如下功能: 1:雙指放大,通過捏合雙指進行放大或縮小 2:單個手指

pdf.js 入門使用指南3-字型顯示問題

1:亂碼問題。最近遇到一個問題,一個pdf 檔案使用了冷門的字型,導致出現亂碼,字型空白,如下圖所示 2:問題排查,初步排查,治標。    修改改pdf 檔案,把字型都修改成宋體。再次預覽,顯示正常 。     3:從問題上根治這個問