# Js代碼寫在哪里
* EpiiAdmin 在后臺解析模板,并顯示給瀏覽器后,前端交互功能與后臺完全分離,可以把前臺單獨理解為App,后臺數據作為環境變量Args 作為啟動參數。
* 前端基礎框架與業務系統可以完全分離(推薦且默認),也可以合在一起。
* ***80%的交互無需寫Js代碼,只需使用css3 屬性標簽即可。***
## 雖然 *`80%`* 的交互性功能不用寫Js代碼,但在一些具體需求上,我們需要編寫自己的js代碼,那么這些應該寫在哪里呢?
### 第一種方法、在html模板中,使用 *`window.onEpiiInit`* 方法 。
```javascript
<script>
window.onEpiiInit(function() {
console.log("js in html 1");
});
window.onEpiiInit(function() {
console.log("js in html 2");
});
</script>
```
輸出
```javascript
js in html 1
js in html 2
```
為什么要在 `window.onEpiiInit` 中寫,是因為前臺框架默認加載了一些必須的組件,如`requireJs,layer,addtabs,jquery,Args,bootstrip` 等。加載后即可大膽的使用這些組件。
> 在`html`中寫`js` 代碼是一種傳統的編寫方式(對于一些小需求也是最方便的),很多后臺人員都習慣于這樣寫,但EpiiAdmin 仍然不推薦這樣編寫代碼。
### 第二種方法、建立`js`文件,并被框架引用,使得`Js`與`html`完全分離。
默認js文件根目錄目錄為:
```javascript
public
static
js
app
```
我們建立 `user/index.js`
```javascript
public
static
js
app
user/index.js
```
內容為:
```javascript
console.log("js in html 3");
```
并且(必須)在php程序中,在action中使用 `jsAppName` 方法加載js文件(默認不會自動加載,因為大部分的業務并不需要單獨寫js文件。或者很小的功能直接用第一種方法寫在html中了)
```php
$this->jsAppName("user/index");
```
輸出(與第一種方法的html同屬一個頁面)
```javascript
js in html 1
js in html 2
js in html 3
```
EpiiAdmin 是基于 require.js 對js文件的管理。推薦按照標準AMD寫法,返回的對象如果含有`run`方法,則會默認執行`run`方法.
`user/index.js`改為:
```javascript
define(['jquery',"args"],function ($,Args) {
console.log("js in html amd");
var out = {
run:function() {
console.log("js in html amd and run");
}
}
return out;
});
```
輸出
```javascript
js in html 1
js in html 2
js in html amd
js in html amd and run
```
- 簡介/安裝
- 快速搭建一個用戶中心
- Js代碼寫在哪里
- 環境變量Args
- 前臺組件
- Dialog方式打開頁面
- Addtab方式打開頁面
- Alert提醒框
- Confirm確認框
- Prompt輸入框
- 表單Form
- 列表Table/list
- 基礎Table
- 控制Table
- 搜索Table
- 城市選擇city-picker
- 文件上傳組件
- 基礎版本
- 簡單版本
- 更多實用組件
- 后臺
- 實現方式綜述
- 命令管理類JsCmd
- 命令
- Alert命令
- Url命令
- Toast命令
- JsEval命令
- Close命令
- Refresh命令
- CloseAndRefresh命令
- 常用命令的簡化
- 文件上傳
- 后臺基礎
- 后臺進階
- 左側導航badge配置