ng-showはElementを残したままdisplay: noneで非表示にするのでキャッシュが効く。よって初期表示は遅いが再表示は速い。
ng-ifはその逆で、初期表示は速いが再表示は遅い。
参考:
ng-showはElementを残したままdisplay: noneで非表示にするのでキャッシュが効く。よって初期表示は遅いが再表示は速い。
ng-ifはその逆で、初期表示は速いが再表示は遅い。
参考:
AngularJSは何も考えずに作ると結構重くなる。。 <select ng-options...>タグが100個ぐらいある画面をIEで開くと操作可能になるまで20秒ぐらいかかった。
ただ、画面仕様的になぜか入力することは無く常にselectタグはdisableになっている仕様だったので、 h5タグで書き直したら20秒が300msになった。約70倍も違うとは。。
あとIEとChromeでパフォーマンス10倍程度違った。対応ブラウザChromeだけにしたい。。
one time bindingも試してみたけどあまり変わらなかった。
参考:
以下のように、リストに表示する名前に続けて | filter
を書けばいい。
<select class="form-control" ng-model="selectedOption" ng-options="option.name | filter for option in category.options"></select>
参考:
rowクラスは左右に-15pxのマージンを持っており、rowの親Elementより大きい。 その理由は、列の左右にガター領域を確保するため。グリッドFWはすべてガターがあるらしい。 うーん、まだグリッドシステムとBootstrapをちゃんと理解できてないな。。
参考:
原因はrowクラスが左右に-15pxのマージンを持っており、
以下によると、新しいバージョンのBootでは解決しているようなので、Bootstrapのバージョンを上げたら直る。
それが難しいようなら以下を定義すると直る。
.container-fluid { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
でもBootstrapのクラスを上書きしたくない。。
dirty & quickなやり方としては以下をrow divの親Elementに追加するやり方がある。
overflow-x:hidden
これはスクロールバーを無理矢理隠してるだけなのであまりやりたくないが。。
参考:
// フォーカスが当たっている要素を取得する var $focused = $(':focus'); // jQueryを使わない場合 var focused = document.activeElement; // フォーカス当たっているかどうかを判定する var hasFocus = $('foo').is(':focus'); // jQueryを使わない場合 elem === elem.ownerDocument.activeElement;
jQuery使わなくても出来るのかー。なるほど。
参考:
ちょっと勘違いしていたんだけど、successの定義は以下のようになっていてdataにhttp bodyが入る。
success(data: any, status: number, headers: ng.IHttpHeadersGetter, config: ng.IRequestConfig)
thenの場合は以下のようにresponseが引数として渡される。response.dataにhttp bodyが入る。successの引数も入っている。例えばstatusはresponse.statusに入っている。
then(response: any)
http bodyにdataなんて項目ないのになぜresponse.dataが。。となってしまった。
参考: