鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ mock.js可以將兩個屬性的值關(guān)聯(lián)起來嗎?

mock.js可以將兩個屬性的值關(guān)聯(lián)起來嗎?

目前,我在做一個vue項目的時候運用了json-server + mock.js,在看后端同學(xué)之前接口返回的數(shù)據(jù)時,發(fā)現(xiàn)有其中有這樣一段:

role:0, // 值包括0,1
roleValue: '管理角色' // 值包括管理角色、普通角色,與上面的值對應(yīng)

如果我用mock.js來模擬數(shù)據(jù),在不用數(shù)組的情況下,怎么樣才能使這兩個值一一對應(yīng),和后端寫好的接口保持一致?(顯示的時候顯示roleValue的值,修改的時候傳入的參數(shù)為role,但是roleValue的值會做出相應(yīng)的修改)如果mock.js不能實現(xiàn)這種方法,那么請問有其他的解決方案嗎?非常期望大家的幫助!

回答
編輯回答
影魅

我一直在用json-server + mock 可以使用依賴函數(shù) 這么寫就好

{  
  // 隨機選擇
  'role': '@PICK([0, 1])',
  'roleValue': function() {
    // 拿到role的值
    let role = this.role
    return role === 0 ? '管理角色': '普通角色'
  }
}
2017年9月29日 17:10
編輯回答
兔囡囡

我也需要這個

2017年8月27日 11:50
編輯回答
離殤

我們用了rap2來管理,沒有去直接折騰Mock.js。
然后,可以直接將roleValue設(shè)置為『function』類型,然后其『初始值』設(shè)置為類似于下面的代碼:

function() { 
  return (this.role === 0 ? '管理角色' : '普通角色');
}

可以看到,在函數(shù)內(nèi)部通過this能對應(yīng)到當(dāng)前模擬的其他key。
希望能幫助到你。

評論中不能貼圖,rap2中可以這么弄:

clipboard.png

2018年3月12日 06:39
編輯回答
陪我終

雖然不太懂 不知道對不對 提供點大概的想法

var r = {};
r[role] =  roleValue;
console.log(r.0);
2018年8月19日 04:38
編輯回答
醉淸風(fēng)
let roleVals=['管理角色','普通角色']

roleValue=roleVals[role]
2018年4月13日 20:39