render-core 1.0.46 → 1.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/cmd/v-switch.d.ts +1 -0
- package/core/cmd/v-switch.js +27 -0
- package/library/cmd/cmd.js +3 -0
- package/package.json +1 -1
package/core/cmd/v-switch.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolver_switch(elements: HTMLCollection, data: {}): void;
|
package/core/cmd/v-switch.js
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function resolver_switch(elements, data) {
|
|
2
|
+
//在当前级别下寻找到v-if
|
|
3
|
+
for (var i = 0; i < elements.length; i++) {
|
|
4
|
+
//获取元素节点所有属性
|
|
5
|
+
var attributes = elements[i].getAttributeNames();
|
|
6
|
+
//解析元素的所有属性
|
|
7
|
+
for (var j = 0; j < attributes.length; j++) {
|
|
8
|
+
//检查属性名称以及匹配绑定方法
|
|
9
|
+
var result = attributes[j].match(/^v-switch:([a-z]+)$/g);
|
|
10
|
+
//如何属性匹配
|
|
11
|
+
if (result !== null) {
|
|
12
|
+
//属性
|
|
13
|
+
var action = result[0].substring(5);
|
|
14
|
+
//值
|
|
15
|
+
var method = elements[i].getAttribute(result[0]);
|
|
16
|
+
//删除属性
|
|
17
|
+
elements[i].removeAttribute(result[0]);
|
|
18
|
+
if (data[action] !== method) {
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
elements[i].style.display = "none";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//遍历自己
|
|
25
|
+
resolver_switch(elements, data);
|
|
26
|
+
}
|
|
27
|
+
}
|
package/library/cmd/cmd.js
CHANGED
|
@@ -7,6 +7,7 @@ import { resolver_bind } from "../../core/cmd/v-bind";
|
|
|
7
7
|
import { resolver_show } from "../../core/cmd/v-show";
|
|
8
8
|
import { resolver_render } from "../../core/cmd/v-render";
|
|
9
9
|
import { resolver_if } from "../../core/cmd/v-if";
|
|
10
|
+
import { resolver_switch } from "../../core/cmd/v-switch";
|
|
10
11
|
export function cmd(tagTemplate, proto, controller) {
|
|
11
12
|
//给所有元素添加上npm=tag标志
|
|
12
13
|
addLabel(tagTemplate.children, proto.getName());
|
|
@@ -28,6 +29,8 @@ export function afterCmd(templateSpace, proto, controller) {
|
|
|
28
29
|
resolver_render(templateSpace.children, controller.proxyForMethods);
|
|
29
30
|
//v-if
|
|
30
31
|
resolver_if(templateSpace.children, controller.proxyForMethods);
|
|
32
|
+
//v-switch
|
|
33
|
+
resolver_switch(templateSpace.children, controller.proxyForMethods);
|
|
31
34
|
}
|
|
32
35
|
export function cmdForUpdate(tagTemplate, proto, controller) {
|
|
33
36
|
//给所有元素添加上npm=tag标志
|