企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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 ```