Enviar pesquisa
Carregar
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
•
5 gostaram
•
2,061 visualizações
佐藤 俊太郎
Seguir
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jsCafe21
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 42
Baixar agora
Baixar para ler offline
Recomendados
JavaScriptでいいじゃなイカ
JavaScriptでいいじゃなイカ
Yuuichi Akagawa
Start React with Browserify
Start React with Browserify
Muyuu Fujita
jQuery Mobile 概要
jQuery Mobile 概要
トモロヲ いちがみ
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
One night Vue.js
One night Vue.js
Masahiro Kyuden
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
はじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
Creators'night#13 tech#2今井
Creators'night#13 tech#2今井
Daisuke Imai
Recomendados
JavaScriptでいいじゃなイカ
JavaScriptでいいじゃなイカ
Yuuichi Akagawa
Start React with Browserify
Start React with Browserify
Muyuu Fujita
jQuery Mobile 概要
jQuery Mobile 概要
トモロヲ いちがみ
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
One night Vue.js
One night Vue.js
Masahiro Kyuden
Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
はじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
Creators'night#13 tech#2今井
Creators'night#13 tech#2今井
Daisuke Imai
SVG MANIAX Ver.2 - Mars vanilla
SVG MANIAX Ver.2 - Mars vanilla
Naoki Matsuda
Web socketドロンくん その後-
Web socketドロンくん その後-
Yuuichi Akagawa
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
Velocity.js is next generation animation engine.
Velocity.js is next generation animation engine.
陽平 南
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
HTML5 と SVG で考える、これからの画像アクセシビリティ
HTML5 と SVG で考える、これからの画像アクセシビリティ
Naoki Matsuda
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
Angular js or_backbonejs
Angular js or_backbonejs
Omasa Yusaku
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門
Toshiaki Maki
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
Vue.js 2.0を試してみた
Vue.js 2.0を試してみた
Toshiro Shimizu
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Makoto Haruyama
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
niwatako
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解する
Jun Futakawa
Backbone.js入門
Backbone.js入門
AdvancedTechNight
はじめてのVue.js
はじめてのVue.js
kamiyam .
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
健人 井関
iOS WebView App
iOS WebView App
hagino 3000
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
佐藤 俊太郎
アジャイルとクラウドの『危険なカンケイ』
アジャイルとクラウドの『危険なカンケイ』
Mamoru Ohashi
Mais conteúdo relacionado
Mais procurados
SVG MANIAX Ver.2 - Mars vanilla
SVG MANIAX Ver.2 - Mars vanilla
Naoki Matsuda
Web socketドロンくん その後-
Web socketドロンくん その後-
Yuuichi Akagawa
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
Velocity.js is next generation animation engine.
Velocity.js is next generation animation engine.
陽平 南
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
HTML5 と SVG で考える、これからの画像アクセシビリティ
HTML5 と SVG で考える、これからの画像アクセシビリティ
Naoki Matsuda
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
Angular js or_backbonejs
Angular js or_backbonejs
Omasa Yusaku
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門
Toshiaki Maki
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
Vue.js 2.0を試してみた
Vue.js 2.0を試してみた
Toshiro Shimizu
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Makoto Haruyama
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
niwatako
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解する
Jun Futakawa
Backbone.js入門
Backbone.js入門
AdvancedTechNight
はじめてのVue.js
はじめてのVue.js
kamiyam .
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
健人 井関
iOS WebView App
iOS WebView App
hagino 3000
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
Mais procurados
(20)
SVG MANIAX Ver.2 - Mars vanilla
SVG MANIAX Ver.2 - Mars vanilla
Web socketドロンくん その後-
Web socketドロンくん その後-
The master plan ofscaling a web application
The master plan ofscaling a web application
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
Velocity.js is next generation animation engine.
Velocity.js is next generation animation engine.
Kawaz的jQuery入門
Kawaz的jQuery入門
HTML5 と SVG で考える、これからの画像アクセシビリティ
HTML5 と SVG で考える、これからの画像アクセシビリティ
Canvas勉強会
Canvas勉強会
Angular js or_backbonejs
Angular js or_backbonejs
忙しい人のためのBackbone.jsとAngular.js入門
忙しい人のためのBackbone.jsとAngular.js入門
React を導入したフロントエンド開発
React を導入したフロントエンド開発
Vue.js 2.0を試してみた
Vue.js 2.0を試してみた
backbone.jsの使用例 その1
backbone.jsの使用例 その1
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
Scc2014 :jQueryの仕組みを完璧に理解する
Scc2014 :jQueryの仕組みを完璧に理解する
Backbone.js入門
Backbone.js入門
はじめてのVue.js
はじめてのVue.js
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
iOS WebView App
iOS WebView App
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Destaque
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
佐藤 俊太郎
アジャイルとクラウドの『危険なカンケイ』
アジャイルとクラウドの『危険なカンケイ』
Mamoru Ohashi
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
Dai FUJIHARA
Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )
Naofumi Tsuchiya
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
Masahito Zembutsu
Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法
Hirotaka Osaki
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
Fumihiko Kinoshita
株式会社Gunosy fix
株式会社Gunosy fix
Makoto Ujyu
Destaque
(8)
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
アジャイルとクラウドの『危険なカンケイ』
アジャイルとクラウドの『危険なカンケイ』
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
Prott Story ( Prottができるまで )
Prott Story ( Prottができるまで )
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
Ameba流 scrumを浸透させていく方法
Ameba流 scrumを浸透させていく方法
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
株式会社Gunosy fix
株式会社Gunosy fix
Semelhante a サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
Daizen Ikehara
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Yasuhito Yabe
Async Enhancement
Async Enhancement
kamiyam .
20110714 j queryベーシック
20110714 j queryベーシック
良太 増子
スマホにおけるWebGL入門
スマホにおけるWebGL入門
Yohta Kanke
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
Microsoft Azure Japan
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミング
Kazuki Miyanishi
IBDesignable / IBInspectable で UIプロトタイピンガブル
IBDesignable / IBInspectable で UIプロトタイピンガブル
Masaki Oshikawa
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
Jqm20120210
Jqm20120210
cmtomoda
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
Yusuke Tochigi
scala+liftで遊ぼう
scala+liftで遊ぼう
youku
いまさらJavaScript
いまさらJavaScript
Naomichi Yamakita
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2
Nobuhiro Nakajima
Semelhante a サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
(20)
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
Knockout.js を利用したインタラクティブ web アプリケーション開発
Knockout.js を利用したインタラクティブ web アプリケーション開発
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Async Enhancement
Async Enhancement
20110714 j queryベーシック
20110714 j queryベーシック
スマホにおけるWebGL入門
スマホにおけるWebGL入門
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミング
IBDesignable / IBInspectable で UIプロトタイピンガブル
IBDesignable / IBInspectable で UIプロトタイピンガブル
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Vue.js で XSS
Vue.js で XSS
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
Jqm20120210
Jqm20120210
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
scala+liftで遊ぼう
scala+liftで遊ぼう
いまさらJavaScript
いまさらJavaScript
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2
Mais de 佐藤 俊太郎
iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
佐藤 俊太郎
Source kittenについて
Source kittenについて
佐藤 俊太郎
Bond の v4 について
Bond の v4 について
佐藤 俊太郎
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
佐藤 俊太郎
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
佐藤 俊太郎
Createjsについて@jsCafe20
Createjsについて@jsCafe20
佐藤 俊太郎
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
佐藤 俊太郎
Introduction for cocos2d
Introduction for cocos2d
佐藤 俊太郎
Mais de 佐藤 俊太郎
(8)
iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
Source kittenについて
Source kittenについて
Bond の v4 について
Bond の v4 について
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
Createjsについて@jsCafe20
Createjsについて@jsCafe20
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
Introduction for cocos2d
Introduction for cocos2d
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
1.
2014/07/27 @jsCafe21 サーバサイドで動的にhtml生成していたり jQueryをガッツし使っている 既存プロジェクトにAngularJSを 部分的につっこんでみた
2.
名前:佐藤俊輔 twitter : @ushisantoasobu 所属
: 株式会社ジークレスト 経歴 : 主にフロントエンドエンジニア 担当 : 現在はポケットランド(スマホweb)というアバターサービス 自己紹介
3.
その前の発表がVue.jsで、そこでおそらく Angularがディスられるので省略 Angularとは
4.
「AngularってSPAつくるためのものでしょ?」 自分の勝手な思い込み
5.
- Rebuild 27 -
mozaic.fm #3 (こちらはAngularのみを70分くらい) 「ハイブリッド」もありのようだ
6.
- step1 :
データバインディングで効率化 - step2 : 共通モジュールをディレクティブ化 - step3 : 中規模程度の新機能をSPAっぽく 担当プロジェクトでのAngular導入ステップ
7.
- step1 :
データバインディングで効率化 ✓ - step2 : 共通モジュールをディレクティブ化 ✓ - step3 : 中規模程度の新機能をSPAっぽく 担当プロジェクトでのAngular導入ステップ
8.
データバインディング <p>{{message}}</p> $scope.message = “hoge”; .html .js
9.
使っているところ = xhrで表示更新するところ (初期表示のhtmlについてはJavaのvelocityで生成している)
10.
11.
12.
- ゲームのポイントやランキング - アイテム所持数 -
報酬アイテム などなど...結構ある
13.
- 同じデータを表示する箇所が複数あっても安心 - データのオブジェクトさえつっこめばいいので楽 (もうjQueryではやりたくない) 特にいいと思ったところ
14.
同じデータを複数のDOMで表示することが多々ある
15.
<div class=”point_total”>×{{targetRewardPoint}}</div> ... <div class=”point_total”>×{{targetRewardPoint}}</div> ... <div
class=”result_point_total”>×{{targetRewardPoint}}</div> .html
16.
<div class=”point_total”>×{{targetRewardPoint}}</div> ... <div class=”point_total”>×{{targetRewardPoint}}</div> ... <div
class=”result_point_total”>×{{targetRewardPoint}}</div> $scope.targetRewardPoint = data.point; .html .js もちろんこれだけでOK
17.
{ " "bannerDataList":null, " "boxLevelBonusAchieveLevel":1, "
"boxLevelBonusList":[], " "completeFlg":false, " "completePoint":0, " "countRewardDataList":null, " "currentPoint":327, " "currentRank":27910, " "deliveryCount":0, " "deliveryCountRewardDataList":null, " "orderPoint":0, " "pointRewardDataList":[ " " { " " " "categoryName":"アクセサリ/手系", " " " "count":1, " " " "dataItemFlg":false, " " " "imageUrl":"shop/clothes/acceh/acceh_10824494_shop.png", " " " "itemId":10824494, " " " "itemName":"ふしぎな実", " " " "itemRare":0, " " " "rewardPoint":300 " " } " ], " "restRewardCount":55, " "resultCd":0, " "token":null } あるAPIでこのようなjsonが返ってくるとする
18.
{ " "bannerDataList":null, " "boxLevelBonusAchieveLevel":1, "
"boxLevelBonusList":[], " "completeFlg":false, " "completePoint":0, " "countRewardDataList":null, " "currentPoint":327, " "currentRank":27910, " "deliveryCount":0, " "deliveryCountRewardDataList":null, " "orderPoint":0, " "pointRewardDataList":[ " " { " " " "categoryName":"アクセサリ/手系", " " " "count":1, " " " "dataItemFlg":false, " " " "imageUrl":"shop/clothes/acceh/acceh_10824494_shop.png", " " " "itemId":10824494, " " " "itemName":"ふしぎな実", " " " "itemRare":0, " " " "rewardPoint":300 " " } " ], " "restRewardCount":55, " "resultCd":0, " "token":null } 枠部分(報酬アイテム情報)を表示したい
19.
<div> " <div> " <img
src="http://img.atgames.jp/sp/update/2014/04/icon_point.png"> " " <span id=”reward_span_reward_point”></span>達成 " </div> " <div><img id=”reward_img_reward_url”></div> " <div id=”reward_div_reward_itemname”></div> " <div id=”reward_div_reward_itemcount”></div> </div> var reward = data.pointRewardData[0]; jQuery(“#reward_span_reward_point”).html(reward.rewardPoint); jQuery(“#reward_img_reward_url”).attr('src', reward.imageUrl); jQuery(“#reward_div_reward_itemname”).html(“<em>” + reward.categoryName + “</em><br>” + reward.itemName); jQuery(“#reward_div_reward_itemcount”).html(“×” + reward.count); .html .js これまで自分がjQueryで書いてた方法(もっとキレイに書ける?汗)
20.
AngularJSで書いた方法。ロジック側の記述が楽 <div> " <div> " "
<img src="http://img.atgames.jp/sp/update/2014/04/icon_point.png"> " " <span>{{pointRewardData.rewardPoint}}</span>達成 " </div> " <div><img src="http://img.atgames.jp/{{pointRewardData.imageUrl}}"></div> " <div><em>{{pointRewardData.categoryName}}</em><br>{{pointRewardData.itemName}}</div> " <div ng-show="pointRewardData.count > 1">×{{pointRewardData.count}}</div> </div> $scope.pointRewardDataList = pointRewardDataList; .html .js
21.
負の遺産もつくってしまった、、、恥ずかしいけど書く
22.
23.
ページ表示時に サーバサイドで動的に値を埋め込んでいる、 でもその後xhrでも値を更新したい、 といった箇所
24.
<!-- 初期表示にvelocityで値を埋め込みたい --> <p>$!{rank}</p> <!--
でもangularでも書きたい(どんどん更新していくので) --> <p>{{rank}}</p> .html .js $scope.rank = 0; どうする?
25.
<p>{{rank}}</p> <script> var setupAngular =
function(){ " var _scope = angular.element(ngCtrl).scope(); " _scope.$apply(function(){ " " _scope.rank = $!{rank}; " }); }; </script> .html .js $scope.rank = 0; angular.element(document).ready(function() { " if(setupAngular && typeof setupAngular === "function"){ " " setupAngular(); //本体htmlのグローバルメソッドにアクセス " } }); html側のスクリプトにvelocityで吐き出される値を書き出して、、、 みたいなことをやってる。しかも不要にグローバル変数をつくってしまってる
26.
- 簡単にいえば「カスタムタグ」or「カスタム属性」 ディレクティブ
27.
28.
29.
サービス内の複数のページで共通で使用している機能 をディレクティブ化する
30.
ディレクティブ化する前 イベント毎にソースをコピペして、値の一部を変えることで対応していた(惰性) <canvas id=” canvas_100522”></canvas> <script> (function(){ "
var self = {}, canvas, stage, exportRoot, " POS_X = 0, POS_Y = 0, SCALE = 0.55; //※ここ調整する " " self.init = function() { " " canvas = document.getElementById("canvas_100522"); " " df100522_images = df100522_images||{}; " " var len = df100522.properties.manifest.length; " " for(var i = 0; i < len; i++){ " " " var url = df100522.properties.manifest[i].src; " " " url = window.IMAGE_DOMAIN + "/high/roomfurniture/deco/" + url; " " " df100522.properties.manifest[i].src = url; " " } " " var loader = new createjs.LoadQueue(false); " " loader.addEventListener("fileload", self.handleFileLoad); " " loader.addEventListener("complete", self.handleComplete); " " loader.loadManifest(df100522.properties.manifest); " } " self.handleFileLoad = function(evt) { "" if (evt.item.type == "image") { df100522_images[evt.item.id] = evt.result; } " } " self.handleComplete = function() { "" //ここは省略 " } " window.selfytown.df100522_shop = self; }()); </script> .html
31.
ディレクティブ化する .directive('df', function() { "
return { " " restrict: 'E', " " transclude: true, " " scope: { " " " furnitureid: '@', " " " category: '@', " " " posx: '@', " " " posy: '@', " " " scale: '@' " " }, " " template: " " " '<canvas id="js_canvas_dynamic_furniture_{{furnitureid}}"></canvas>', " " link:function($scope, $element){ " " " var canvas, " " " " len, " " " " url, " " " " loader, " " " " exportRoot, " " " " stage; " " " " " " canvas = $element[0]; " " " len = window["df" + $scope.furnitureid].properties.manifest.length; " " " for(i = 0; i < len; i++){ " " " " url = window["df" + $scope.furnitureid].properties.manifest[i].src; " " " " url = window.IMAGE_DOMAIN + "/high/roomfurniture/" + $scope.category + "/" + url; " " " " window["df" + $scope.furnitureid].properties.manifest[i].src = url; " " " } " " " //CreateJSまわりの処理は省略 " " }, " " replace: true " }; }); .js
32.
ディレクティブ化した後 <df furnitureid=”100522” category=”deco”
posX=”0” posY=”0” scale=”0.55”></df> .html 以後これだけでOK(でもやっぱ黒魔術的な匂いがする)
33.
- ディレクティブの使いどころについては @konpyuさんのスライドがわかりやすかった http://www.slideshare.net/KonYuichi/0601-angular-note - mozaic.fm
#3 でもゲストでお話されています!
34.
- 中規模程度の機能をSPAっぽくつくりたい SPAっぽくつくりたい
35.
36.
イベントページのタブボタン押下時の画面の切り替えを 今はページ読み込みになっているけど APIだけ返してもらっての表示の切り替えにしたい
37.
- アプリっぽい挙動にしたい =
サクサク感 やりたいこと
38.
- フロントまわりでの処理が多くなるので 機種やOSによっては逆に描画が遅くなるかも? - htmlをキャッシュさせることでSPAを実現するけど htmlの更新の仕組みをうまくつくらないと -
既存のワークフロー(webコーダー、サーバサイド) から見直さないといけない 懸念事項
39.
- jQueryも使える(angular.element) - 動的に表示を更新してく箇所がたくさんあるときは jQueryではもう書けない、 でも必ずしもAngularでなくてもよい? まとめや補足
40.
- 改めて振り返ると、、初期学習コストは高いかも - html自体がテンプレートになっているので webコーダーもみやすい -
でも急に見知らぬカスタムタグつくるとビックリ されて迷惑がられる まとめや補足
41.
- Angularっぽくないこのスライドの色合いは、 当初はW杯直前に発表する予定だったため ブラジルカラーっぽくしてるだけ まとめや補足
42.
ご清聴ありがとうございます!
Baixar agora