render-core 1.0.96 → 1.0.98

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.
@@ -1,6 +1,14 @@
1
+ import { ComponentController } from "../../../class/controller/componentController";
1
2
  /**
2
3
  * 绑定数据模型
3
4
  * @param nodes
4
5
  * @param data
5
6
  */
6
7
  export declare function resolver_model(nodes: HTMLCollection, data: {}): void;
8
+ /**
9
+ *
10
+ * @param nodes
11
+ * @param data
12
+ * @param controller
13
+ */
14
+ export declare function bindModelForUpdater(nodes: HTMLCollection, data: {}, controller: ComponentController): void;
@@ -1,3 +1,4 @@
1
+ import { locateInputAddress } from "../../utility/sectionUtility";
1
2
  /**
2
3
  * 绑定数据模型
3
4
  * @param nodes
@@ -43,3 +44,57 @@ export function resolver_model(nodes, data) {
43
44
  resolver_model(nodes[i].children, data);
44
45
  }
45
46
  }
47
+ /**
48
+ *
49
+ * @param nodes
50
+ * @param data
51
+ * @param controller
52
+ */
53
+ export function bindModelForUpdater(nodes, data, controller) {
54
+ for (var i = 0; i < nodes.length; i++) {
55
+ if (nodes[i].hasAttribute("v-model")) {
56
+ var dataName = nodes[i].getAttribute("v-model");
57
+ nodes[i].removeAttribute("v-model");
58
+ var tagName = nodes[i].tagName;
59
+ nodes[i].setAttribute("name", dataName);
60
+ // @ts-ignore
61
+ nodes[i].setAttribute("value", data[dataName]);
62
+ if (tagName === "INPUT" || tagName === "SELECT" || tagName === "TEXTAREA") {
63
+ nodes[i].setAttribute("name", dataName);
64
+ // @ts-ignore
65
+ nodes[i].setAttribute("value", data[dataName]);
66
+ //光标定位
67
+ var listener = function (evt) {
68
+ if (!evt.target.hasAttribute("flag")) {
69
+ //Get the event element
70
+ var element = evt.target;
71
+ //Get the name attribute
72
+ var dataName_2 = element.name;
73
+ Reflect.set(this, "origin", {
74
+ cpn: element.getAttribute("cpn"),
75
+ tag: element.nodeName,
76
+ name: element.getAttribute("name")
77
+ });
78
+ //Update the value
79
+ this[dataName_2] = element.value;
80
+ }
81
+ };
82
+ var compositionstart = function (evt) {
83
+ evt.target.setAttribute("flag", "false");
84
+ };
85
+ var compositionend = function (evt) {
86
+ evt.target.setAttribute("flag", "true");
87
+ var element = evt.target;
88
+ var dataName = element.name;
89
+ this[dataName] = element.value;
90
+ };
91
+ nodes[i].addEventListener("input", listener.bind(data));
92
+ nodes[i].addEventListener("compositionstart", compositionstart);
93
+ nodes[i].addEventListener("compositionend", compositionend.bind(data));
94
+ // @ts-ignore
95
+ locateInputAddress(controller);
96
+ }
97
+ }
98
+ bindModelForUpdater(nodes[i].children, data, controller);
99
+ }
100
+ }
@@ -24,7 +24,6 @@ export function getSetter(data, updater) {
24
24
  this.watcher[prop](obj[prop], value);
25
25
  }
26
26
  catch (error) {
27
- console.log(error.message);
28
27
  }
29
28
  //更新值
30
29
  obj[prop] = value;
@@ -1,8 +1,8 @@
1
- import { bindModelForUpdater } from "../utility/miscUtility";
2
1
  import { afterCmd, cmdForUpdate } from "../../library/cmd/cmd";
3
2
  import { injectRefs } from "../inject/inject";
4
3
  import { findComponent } from "./delivery";
5
4
  import { getTemplate } from "../utility/templateUtility";
5
+ import { bindModelForUpdater } from "../cmd/react/v-model";
6
6
  /**
7
7
  * 更新渲染方法
8
8
  * @param controller
@@ -1,8 +1,6 @@
1
- import { ComponentController } from "../../class/controller/componentController";
2
1
  /**
3
2
  * 给组件元素添加cpn标签
4
3
  * @param nodes
5
4
  * @param component
6
5
  */
7
6
  export declare function addLabel(nodes: HTMLCollection, component: string): void;
8
- export declare function bindModelForUpdater(nodes: HTMLCollection, data: {}, controller: ComponentController): void;
@@ -1,4 +1,3 @@
1
- import { locateInputAddress } from "./sectionUtility";
2
1
  /**
3
2
  * 给组件元素添加cpn标签
4
3
  * @param nodes
@@ -11,43 +10,3 @@ export function addLabel(nodes, component) {
11
10
  addLabel(kk, component);
12
11
  }
13
12
  }
14
- export function bindModelForUpdater(nodes, data, controller) {
15
- for (var i = 0; i < nodes.length; i++) {
16
- if (nodes[i].hasAttribute("v-model")) {
17
- var dataName = nodes[i].getAttribute("v-model");
18
- nodes[i].removeAttribute("v-model");
19
- var tagName = nodes[i].tagName;
20
- nodes[i].setAttribute("name", dataName);
21
- // @ts-ignore
22
- nodes[i].setAttribute("value", data[dataName]);
23
- if (tagName === "INPUT" || tagName === "SELECT" || tagName === "TEXTAREA") {
24
- nodes[i].setAttribute("name", dataName);
25
- // @ts-ignore
26
- nodes[i].setAttribute("value", data[dataName]);
27
- //光标定位
28
- var listener = function (evt) {
29
- if (!evt.target.hasAttribute("flag")) {
30
- var element = evt.target;
31
- var dataName_1 = element.name;
32
- this[dataName_1] = element.value;
33
- }
34
- };
35
- var compositionstart = function (evt) {
36
- evt.target.setAttribute("flag", "false");
37
- };
38
- var compositionend = function (evt) {
39
- evt.target.setAttribute("flag", "true");
40
- var element = evt.target;
41
- var dataName = element.name;
42
- this[dataName] = element.value;
43
- };
44
- nodes[i].addEventListener("input", listener.bind(data));
45
- nodes[i].addEventListener("compositionstart", compositionstart);
46
- nodes[i].addEventListener("compositionend", compositionend.bind(data));
47
- // @ts-ignore
48
- locateInputAddress(controller);
49
- }
50
- }
51
- bindModelForUpdater(nodes[i].children, data, controller);
52
- }
53
- }
@@ -16,5 +16,6 @@ export function locateInputAddress(controller) {
16
16
  value.setSelectionRange(controller.proxyForMethods[doc_1.name].length, controller.proxyForMethods[doc_1.name].length);
17
17
  }
18
18
  });
19
+ Reflect.deleteProperty(controller.proxyForMethods, "origin");
19
20
  }
20
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-core",
3
- "version": "1.0.96",
3
+ "version": "1.0.98",
4
4
  "description": "The core of render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",