mock.js可以将两个属性的值关联起来吗?

目前,我在做一个vue项目的时候运用了json-server + mock.js,在看后端同学之前接口返回的数据时,发现有其中有这样一段:

role:0, // 值包括0,1
roleValue: '管理角色' // 值包括管理角色、普通角色,与上面的值对应

如果我用mock.js来模拟数据,在不用数组的情况下,怎么样才能使这两个值一一对应,和后端写好的接口保持一致?(显示的时候显示roleValue的值,修改的时候传入的参数为role,但是roleValue的值会做出相应的修改)如果mock.js不能实现这种方法,那么请问有其他的解决方案吗?非常期望大家的帮助!

阅读 6.4k
5 个回答

我一直在用json-server + mock 可以使用依赖函数 这么写就好

{  
  // 随机选择
  'role': '@PICK([0, 1])',
  'roleValue': function() {
    // 拿到role的值
    let role = this.role
    return role === 0 ? '管理角色': '普通角色'
  }
}

我也需要这个

虽然不太懂 不知道对不对 提供点大概的想法

var r = {};
r[role] =  roleValue;
console.log(r.0);

我们用了rap2来管理,没有去直接折腾Mock.js。
然后,可以直接将roleValue设置为『function』类型,然后其『初始值』设置为类似于下面的代码:

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

可以看到,在函数内部通过this能对应到当前模拟的其他key。
希望能帮助到你。

评论中不能贴图,rap2中可以这么弄:

clipboard.png

let roleVals=['管理角色','普通角色']

roleValue=roleVals[role]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题