本篇文章為大家展示了ODOO中Action的原理是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
網(wǎng)站制作、成都網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。成都創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
原理:什么是Action?
首先,
讓我們來看看,大家知道的客戶端給服務(wù)端傳參數(shù)的方式只有很少的幾種:
1. URL網(wǎng)址后跟參數(shù);
2. Post請求傳參;
3. Header中傳參(例如Cookie);
ODOO架構(gòu)在設(shè)計(jì)的時(shí)候,選擇了最簡單、可見的傳參方式,即直接在 URL 中進(jìn)行參數(shù)傳遞。
當(dāng)我們訪問一個(gè)URL時(shí),我們直接在 URL后面,跟上ODOO所能識別的參數(shù),例如:Action、Model、View_Type、Menu_id。然后,ODOO系統(tǒng)會自動(dòng)根據(jù)您所訪問的URL進(jìn)行解析,根據(jù)參數(shù)進(jìn)行渲染,最后返回相應(yīng)的視圖。
Actions
Actions 可存在數(shù)據(jù)庫中。也可以直接以字典(dictionaries)形式返回(比如按鈕所運(yùn)行的函數(shù),利于前端JavaScript知道下一步要干什么)。
所有的actions有兩個(gè)必須的屬性:
type
類別,該屬性決定了哪些字段會被用來解析此action.
name
描述,可顯示在客戶端界面上.
客戶端會接收到4種形式的action
False
若當(dāng)前action對話界面是打開狀態(tài),則關(guān)閉.
一條字符串
若與某客戶端動(dòng)作的tag
匹配,則解析該action,否則按數(shù)字處理.
一個(gè)數(shù)字
作為id從數(shù)據(jù)庫中獲取action記錄,該id可能為數(shù)據(jù)記錄id或外部id.
一個(gè)字典
將其作為客戶端action描述,解析并執(zhí)行.
在JavaScript中:
var AbstractAction = require('web.AbstractAction');
var ClientAction = AbstractAction.extend({
...
});
core.action_registry.add('my-custom-action', ClientAction);
在xml中: