render-core 1.0.45 → 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-if.js CHANGED
@@ -21,6 +21,7 @@ export function resolver_if(elements, data) {
21
21
  return;
22
22
  }
23
23
  }
24
+ resolver_if(elements[i].children, data);
24
25
  }
25
26
  //v-if渲染失败,寻找到是否匹配的v-else
26
27
  for (var j = 0; j < elements.length; j++) {
@@ -0,0 +1 @@
1
+ export declare function resolver_switch(elements: HTMLCollection, data: {}): void;
@@ -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
+ }
@@ -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标志
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-core",
3
- "version": "1.0.45",
3
+ "version": "1.0.47",
4
4
  "description": "The core for render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",