(
el, //虚拟dom
value, //v-model view的属性值
modifiers
)
| 10156 | |
| 10157 | //为input type="checkbox" 虚拟dom添加 change 函数 ,根据v-model是否是数组,调用change函数,调用 set 去更新 checked选中数据的值 |
| 10158 | function genCheckboxModel( |
| 10159 | el, //虚拟dom |
| 10160 | value, //v-model view的属性值 |
| 10161 | modifiers |
| 10162 | ) { |
| 10163 | console.log(el) |
| 10164 | |
| 10165 | var number = modifiers && modifiers.number; |
| 10166 | var valueBinding = getBindingAttr(el, 'value') || 'null'; //获取 表单的 value属性值 如果 view 是 value="1" |
| 10167 | var trueValueBinding = getBindingAttr(el, 'true-value') || 'true'; |
| 10168 | var falseValueBinding = getBindingAttr(el, 'false-value') || 'false'; |
| 10169 | |
| 10170 | /* |
| 10171 | view 绑定的 v-model="item.selected" 第二个参数为 |
| 10172 | * Array.isArray(item.selected)?_i(item.selected,"index")>-1:(item.selected) |
| 10173 | * */ |
| 10174 | |
| 10175 | console.log("Array.isArray(" + value + ")" + |
| 10176 | "?_i(" + value + "," + valueBinding + ")>-1" + |
| 10177 | ( |
| 10178 | trueValueBinding === 'true' ? |
| 10179 | (":(" + value + ")") |
| 10180 | : (":_q(" + value + "," + trueValueBinding + ")") |
| 10181 | )) |
| 10182 | |
| 10183 | //在虚拟dom中添加prop属性 |
| 10184 | addProp(el, |
| 10185 | 'checked', |
| 10186 | "Array.isArray(" + value + ")" + |
| 10187 | "?_i(" + value + "," + valueBinding + ")>-1" + |
| 10188 | ( |
| 10189 | trueValueBinding === 'true' ? |
| 10190 | (":(" + value + ")") |
| 10191 | : (":_q(" + value + "," + trueValueBinding + ")") |
| 10192 | ) |
| 10193 | ); |
| 10194 | |
| 10195 | |
| 10196 | |
| 10197 | |
| 10198 | |
| 10199 | |
| 10200 | |
| 10201 | console.log("var $$a=" + value + "," + |
| 10202 | '$$el=$event.target,' + |
| 10203 | "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" + |
| 10204 | 'if(Array.isArray($$a)){' + |
| 10205 | "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," + |
| 10206 | '$$i=_i($$a,$$v);' + |
| 10207 | "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" + |
| 10208 | "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" + |
| 10209 | "}else{" + (genAssignmentCode(value, '$$c')) + "}") |
| 10210 | /* |
| 10211 | view 绑定的 v-model="item.selected" 第二个参数为 |
| 10212 | |
| 10213 | var $$a = item.selected, //属性值 v-model view的属性值 item.selected是否是数组 |
| 10214 | $$el = $event.target, //目标dom 真实dom |
| 10215 | $$c = $$el.checked ? (true) : (false); //是否有选中 |
no test coverage detected