第一個Polymer應用,第一個polymer

來源:互聯網
上載者:User

第一個Polymer應用,第一個polymer
原文連結: Step 4: Finishing touches
翻譯日期: 2014年7月8日
翻譯人員: 鐵錨

在本節中,會在卡片上添加收藏按鈕,並可以通過切換選項卡(tabs)串連到不同的 <post-list> 控制器, 整個應用就算完成了.
在本節中,您將學習:

  • 聲明事件處理(event handling)
  • 向元素的原型(prototype)添加屬性和方法(properties and methods)
  • 自動節點尋找(Automatic node finding)
編輯 post-card.html 檔案

進入根目錄下的starter目錄, 開啟 post-card.html 檔案. 添加   <core-icon> 元素:
<div class="card-header" layout horizontal center>  <content select="img"></content>  <content select="h2"></content></div><core-icon-button  id="favicon"  icon="favorite"  on-tap="{{favoriteTapped}}"></core-icon-button><content></content>
說明:
  • 顧名思義, <core-icon-button> 建立一個嵌入表徵圖的button. Polymer 包含了一寫可伸縮的表徵圖集合。
  • icon="favorite" 屬性從預設表徵圖集中選擇心形表徵圖.
  • on-tap="{{favoriteTapped}}" 屬性在 post-card 元素上指定一個回調方法,當觸摸(tap)按鈕時就會調用。
---------------------------------------------------------------------------------------------

favorite 屬性(property) 以及 favoriteTapped 方法添加到元素的原型(prototype).
  <script>  Polymer({    publish: {      favorite: {        value: false,        reflect: true      }    },    favoriteTapped: function(event, detail, sender) {      this.favorite = !this.favorite;      this.fire('favorite-tap');    }  });  </script>
說明:
  • publish 對象是另一種指定發布屬性的方式,和步驟3中所示的 attributes 屬性一樣的功能。此處 favorite 屬性的預設值為 false , 通過設定反射(reflects), 意味著在屬性值發生變化時 favorite 屬性會被更新
  • favoriteTapped事件切換 favorite 屬性(this.favorite)的狀態,並使用內建的 fire 方法觸發自訂事件,。( fire 是 Polymer 添加到每個自訂元素原型的工具方法之一)
這些變化的結果是,當觸摸 favorite 按鈕時, favorite 屬性值被更新, 並且根據其相應的屬性被設定或還原。
但現在還沒有標識按鈕被按下的視覺效果。

---------------------------------------------------------------------------------------------------

為 favorite 按鈕添加以下CSS樣式:
  core-icon-button {    position: absolute;    top: 3px;    right: 3px;    fill: #636363;  }  :host([favorite]) core-icon-button {    fill: #da4336;  }
說明:
  • fill 屬性設定表徵圖的填充顏色。
  • :host([favorite]) core-icon-button 選取器設定當自訂元素設定了 favorite 屬性時的填充顏色.
-------------------------------------------------------------------------------
儲存 post-card.html.
儲存之後,你可以重新整理頁面,看看 favorite 按鈕的效果, 當然還有一些步驟需要完成。

編輯 index.html 檔案

開啟 index.html ,更新tab的事件處理器,當使用者切換選項卡時切換 <post-list> 的狀態:
  <script>    // 擷取選項卡DOM元素 paper-tabs    var tabs = document.querySelector('paper-tabs');var list = document.querySelector('post-list');    // 添加事件監聽, 很明顯,你需要chrome瀏覽器來運行    // 這裡每次切換會觸發2次,前一個tab取消選中,以及新tab被選中    tabs.addEventListener('core-select', function(e) {  //  list.show = tabs.selected;      //      var detail = e["detail"] || {};      var item = detail["item"] || {};      var isSelected = detail["isSelected"];      console.log(        "Tab(\""+ item["innerText"] + "\") changeTo: "+ isSelected +";"        +" [" + tabs.selected + "] isSelected "         );    });  </script>

儲存 index.html 檔案.

-------------------------------------------------------------------------------------
編輯 post-list.html

在編輯器中開啟 post-list.html 檔案.
更新 template ,將 <post-card> 元素串連上favorites:
    <template repeat="{{post in posts}}">            <post-card        favorite="{{post.favorite}}"        on-favorite-tap="{{handleFavorite}}"        hidden?="{{show == 'favorites' && !post.favorite}}">                <img src="{{post.avatar}}" width="70" height="70">        <h2>{{post.username}}</h2>        <p>{{post.text}}</p>      </post-card>    </template>
說明:
  • favorite="{{post.favorite}}" 將卡片元素的 favorite 值綁定到 <post-service> 持有數組中的值
  • on-favorite-tap屬性為 <post-card>favorite-tap 事件設定一個事件處理常式
  • hidden?="{{}}" 運算式是boolean屬性的特殊文法,如果綁定的運算式計算值為true則設定該屬性
hidden 的綁定運算式實際的作用是在 < 所有> 與 < 收藏> 選項卡之間切換。

-----------------------------------------------------------

favorite-tap 事件添加事件處理常式:
  <script>  Polymer({    handleFavorite: function(event, detail, sender) {      var post = sender.templateInstance.model.post;      this.$.service.setFavorite(post.uid, post.favorite);    }  });  </script>
說明:
  • sender.templateInstance.model 是模型資料的一個引用,用來構建模板執行個體。在這裡,它包含用來建立一個 <post-card> 的 post對象, 所以你可以擷取它的ID以及 favorite 值。
  • 自訂元素的 shadow DOM 中的每個元素都有一個 id 屬性被加到了 this.$ 字典(dictionary)中。這被稱為自動節點發現(automatic node finding.)
如果這是一個真實的社交網路服務, setFavorite 方法會將資料的改變儲存到伺服器。在這個樣本中,除了列印一下日誌控制台訊息外並沒有處理這些工作。

大功告成

儲存(建議編輯過程中隨時儲存,這是好的編碼習慣) post-list.html 檔案,部署,然後用chrome開啟連結或重新整理頁面, 比如:
http://localhost:8080/polymer-tutorial-master/starter/index.html

大功告成! 如果幸運的話,您的應用程式看起來像這樣:
圖 Step4完成後的效果.
如果發生錯誤或不顯示,可以和 finished 目錄下的 post-card.html, post-list.html, index.html 檔案對比,當然,你也可以直接存取這下面的檔案試試效果。

開始下一個項目
準備好開始一個你自己的項目了嗎?安裝一些 Polymer 組件並開始工作吧!

--> 下一個項目: 安裝組件(Installing components)


在應用程式中建立第一個 IWin32Window 對象之前,必須調用 SetCompatibleTextRenderingDefault

如何修改應用程式的名字 在Project-->Setting-->Link:output file name -->Debug/AppName.exe----------------------------------------------------VC6.0的18個實用小技巧1.檢測程式中的括弧是否匹配   把游標移動到需要檢測的括弧(如大括弧{}、方括弧[]、圓括弧()和角括弧<>)前面,鍵入快速鍵“Ctrl+]”。如果括弧匹配正確,游標就跳到匹配的括弧處,否則游標不移動,並且機箱喇叭還會發出一聲警告聲。  2.查看一個宏(或變數、函數)的宏定義  把游標移動到你想知道的一個宏上,就比如說最常見的DECLARE_MAP_MESSAGE上按一下F12(或右鍵菜單中的Go To Defition Of …),如果沒有建立Browse files,會出現提示對話方塊,確定,然後就會跳到定義那些東西的地方。  相當可喜的是,它也可以看到Microsoft定義的系統宏,非常good.  3.格式化一段亂七八糟的原始碼  選中那段原始碼,按ATL+F8。  4.在編輯狀態下發現成員變數或函數不能顯示  刪除該項目副檔名為.ncb檔案,重新開啟該項目。  5.如何整理ClassView視圖中大量的類  可以在classview 視圖中右鍵建立檔案夾(new folder),再把具有相近性質的類拖到對應的檔案夾中,使整個視圖看上去清晰明了.  6.定位預先處理指定  在源檔案中定位游標到對稱的#if, #endif,使用Ctrl+K.  7.如何添加系統中Lib到當前項目  在Project | Settings | Link | Object/library modules:輸入Lib名稱,不同的Lib之間用空格格開.  8.如何添加系統中的標頭檔(.h)到當前項目.  #include ,告訴編譯到VC系統目錄去找;使用#include "FileName.h",告訴編譯在目前的目錄找.  9.如何在Studio使用彙編調試  在WorkBench的Debugger狀態下按CTRL+F7.  10.怎樣處理ClassZiard找不到的系統訊息  如果要在ClassWizard中處理WM_NCHITTEST等系統訊息,請在ClassWizard中Class Info頁中將Message filter改為Window就有了.  11.如何乾淨的刪除一個類  先從Workspace中的FileView中刪除對應的.h和.cpp檔案,再關閉項目,從實際的檔案夾中刪除對應的.h和.cpp檔案與.clw檔案。  12.在Studio中快速切換兩個檔案  有時,我們需要在最近使用的兩個檔案中快速切換,換Ctrl+F6。這在兩個檔案不相今的時候就有用的.  13.取得來源程式預先處理後的結果:  在Studio裡,可以在->PROJECT-> SETTINGS->C/C++->Project Options中,在最後加上 /P /EP這兩個編譯開關即可做到"只進行預先處理".就可以了。編譯以後就可以在來源程式目錄中發現“檔案名稱.I ”的文字檔。這就是預先處理後的結果。  (注意註:區分大小定,請用大定/P)  14.在Debug模式中查看WINAPI調用後的傳回值:  很簡單,且實用:在watch中加入@hr,err。在CSDN......餘下全文>>
 
Polymer與ABS相對於塑料的優勢

簡單說下,polymer是彙總物的意思,是一種統稱,例如塑料;而ABS是塑料的一種,可以說屬於polymer,ABS是三種單體共聚而成,不是單一的單體共聚。

如果提到樂器,我不知道你具體指哪一種,我接觸過架子鼓,其中鼓膜就是採用一種塑料製成,叫做PET,當然低檔也有PVC的,中國傳統的也有用牛皮做的,看要求,PET的抗擊打,抗劃傷等能力很強,音色也很悅耳;至於其他方面,樂器中也有不少的塑料部分,或是橡膠部分,都屬於polymer,至於ABS的特點就是材料的表面光澤度很好,硬度也不錯,所以外觀很漂亮,對於音色要看各種情況了,如果LZ感興趣的話可以看一些高分子的書,裡面會介紹很多關於polymer的知識,不過關於樂器的應用應該沒有,看看樂器製造方面的書吧。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.