鍍金池/ 問答/網絡安全  HTML/ mock.js可以將兩個屬性的值關聯起來嗎?

mock.js可以將兩個屬性的值關聯起來嗎?

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

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

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

回答
編輯回答
影魅

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

{  
  // 隨機選擇
  '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設置為『function』類型,然后其『初始值』設置為類似于下面的代碼:

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

可以看到,在函數內部通過this能對應到當前模擬的其他key。
希望能幫助到你。

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

clipboard.png

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

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

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

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