blob: 80515c41948847c99314c6223b4f8d49d39b1563 [file] [log] [blame]
guangchao.xu070005a2020-12-07 09:56:40 +08001// 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法
2// this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx
3// 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name
4// 值(默认为undefined),就是查找最顶层的$parent
5export default function $parent(name = undefined) {
6 let parent = this.$parent;
7 // 通过while历遍,这里主要是为了H5需要多层解析的问题
8 while (parent) {
9 // 父组件
10 if (parent.$options && parent.$options.name !== name) {
11 // 如果组件的name不相等,继续上一级寻找
12 parent = parent.$parent;
13 } else {
14 return parent;
15 }
16 }
17 return false;
18}