Ajax 板


LINE

※ 引述《mrbigmouth (大嘴先生)》之銘言: : 但html是一個很好的"資料表達"語言,而不是一個好的"程式"語言 這句話說的好,不過 XML 本來就是種資料表示法吧? 我覺得 Angular 的 Directive 從根本上來說就不是 Template engine。 Server 端的許多 Template engine,核心都是 Text processing + Binding。 而 Angular 只有 Binding,沒有 Text processing。 Directive 的功用為擴充 HTML,為其增加新的行為。 : <header ng-repeat-start="item in items"> : Header {{ item }} : </header> : <div class="body"> : Body {{ item }} : </div> : <footer ng-repeat-end> : Footer {{ item }} : </footer> 這個是在 Angular 中違和感最重的一個 directive 了。跟其它的 directive 格格不入,我也覺得很微妙。 一般 ng-repeat 的行為︰重覆自身,並把資料丟進 child scope 內。 <section ng-repeat="item in items"> ... </section> 這樣寫不是很好嗎 : <% : for (item in items) { : %> : <header> : Header <%- item %> : </header> : <div class="body"> : Body <%- item %> : </div> : <footer> : Footer <%- item %> : </footer> : <% : } : %> 這個就回歸一般的 text processing。事實上用它來 render 非 HTML 的東西 也沒什麼不可。 : <div ng-show="someBooleanVariable"></div> ng-show 的行為︰當資料為 no、false 時,隱藏自己 : <% : if (someBooleanVariable) { : %> : <div></div> : <% : } : %> 這也回歸一般的 text preprocessing。 Directive 和這些 template engine 的不同,就在於 directive 是用來改變 已經 render 出來,HTML element 的行為。而 template engine 是根據定好 的流程,把 HTML render 出來。 以我來說,Directive 的做法是比較適合前端的,而一般的 template engine 適合後端。 要是想做 text processing,也可以把 template engine 寫成 directive <div template-engine template-engine-data="myTemplate"> <% if (var) { %> <span>Hi</span> <% } %> </div> template-engine 行為︰將自身內容和 templateEngineData 丟給 text processor,再將結果替換為自身內容。還可以 watch templateEngineData,當資料改變時 re-render……等等。 說不定已經有人實作過了。 -- (* ̄▽ ̄)/‧★*"`'*-.,_,.-*'`"*-.,_☆,.-*` http://i.imgur.com/oAd97.png --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.222.65
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ajax/M.1416081186.A.110.html ※ 編輯: eight0 (114.25.222.65), 11/16/2014 03:55:00
1F:→ carylorrk: 不用這麼麻煩吧?如果你爽可以先讓 string based 的 11/16 10:35
2F:→ carylorrk: template 跑過一遍啊XD 11/16 10:35
3F:推 mrbigmouth: 雙向綁定的優點不就是圖省事嗎....你這樣做好像沒省到 11/16 14:12
4F:→ mrbigmouth: 事? 那幹嘛不用js自己幹就好? 11/16 14:13
5F:→ mrbigmouth: 說真的 watch/re-render直接用js硬幹是會花多大的功 11/16 14:14
6F:→ mrbigmouth: 夫呢...~"~ 為什麼非把變數判斷寫在html上呢.... 11/16 14:14
7F:→ eight0: @cary 所以我覺得後端比較適合跑一般的 template 11/16 15:43
8F:→ eight0: @mrbm 那只是設想說如果要在 Angular 內實作可以怎麼做啦 11/16 15:44
9F:→ eight0: 另外寫成 directive,其它的 Angular 專案也可以用。 11/16 15:45
10F:→ eight0: 不過我還是不認為 directive 內的東西是「變數判斷」 11/16 15:46
11F:→ superpai: @mrbigmouth 你的「為什麼」的答案你自己就說過了 11/16 15:56
12F:→ superpai: 「html是一個很好的"資料表達"語言,而不是一個好的..」 11/16 15:57
13F:→ superpai: 只能說有的人的想法就是這東西不好我就不要用 11/16 15:57
14F:→ superpai: 有的人覺得不夠好我們來改進他 11/16 15:57
15F:推 tomap41017: 寫React吧! 11/17 20:35







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP