2014-08-30

ExtJS 5 專案開發時不使用 bootstrap.js 的方式

Sencha 建議使用 Sencha CMD 來建立 ExtJS 5 的專案, 以及進行發佈.
但在較大的專案, 許多現有的工具都比 Sencha CMD 要來得好用, 但目前以 Sencha CMD 建立的專案, 似乎只能用 Sencha CMD 發佈.

為了讓專案有良好的 MVC 架構, 在此依然使用 CMD 建立, 但會考慮以 GruntJS 做發佈。

1. 首先在解壓縮的 ext-5.0.1 目錄使用 CMD 建立專案:
sencha generate app ext501 ../ext501

2. 修改 app.js (設定套件名稱對應的路徑, 載入 Application, 設定引入的類別)
 Ext.Loader.setPath({
  'Ext': 'ext/src',
  'ext501': 'app'
 });
 Ext.syncRequire('Ext.app.Application');
 Ext.application({
  name: 'ext501',
  extend: 'ext501.Application',
  requires: [
   "Ext.layout.container.Border",
   "Ext.tab.Panel",
   "ext501.view.main.MainController",
   "ext501.view.main.MainModel"
  ],
  autoCreateViewport: 'ext501.view.main.Main'
 });

3. 修改 ext501.view.main.MainController 的 requires, 不能用 shortcut
    requires: [
        'Ext.window.MessageBox'
    ],

4. 建立 index_app.html
 <html>
 <head>
  <title>ext501</title>
  <link href="ext/packages/ext-theme-classic/build/resources/ext-theme-classic-all.css" rel="stylesheet" type="text/css"></link>
  <script src="ext/ext-all.js" type="text/javascript"></script>
  <script src="ext/packages/ext-theme-classic/build/ext-theme-classic.js" type="text/javascript"></script>
  <script src="app.js" type="text/javascript"></script>
 </head>
 <body></body>
 </html>

5. 啟動 web server 拜訪 index_app.html 查看 default project 的運作。

2014-08-08

IE8 和 Bootstrap 3

參考 IE8 issue with Twitter Bootstrap 3

shiv 讓 IE8 支援 HTML 5 標籤
respond.js 讓 IE8 支援 media query

<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
  <script src="../../assets/js/html5shiv.js"></script>
  <script src="../../assets/js/respond.min.js"></script>
<![endif]-->
另外, 最好的方式還是用 Modernizr 來判斷哪些功能沒支援, 不要直接判斷是否為 IE8.

FB 留言