render-core 1.3.7 → 1.3.8

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.
@@ -4,6 +4,7 @@ export declare class PageController {
4
4
  private currentTag;
5
5
  solt: Map<string, any>;
6
6
  raw_data: {};
7
+ proxyForMethods: {};
7
8
  to: ComponentController[];
8
9
  link: Map<string, {}>;
9
10
  constructor();
@@ -9,11 +9,16 @@ export function resolver_html(elements, data, controller) {
9
9
  if (elements[i].hasAttribute("@html")) {
10
10
  var dataName = elements[i].getAttribute("@html");
11
11
  elements[i].removeAttribute("@html");
12
- if (data[dataName] === undefined) {
13
- elements[i].innerHTML = controller.computed[dataName].call();
12
+ try {
13
+ if (data[dataName] === undefined) {
14
+ elements[i].innerHTML = controller.computed[dataName]();
15
+ }
16
+ else {
17
+ elements[i].innerHTML = data[dataName];
18
+ }
14
19
  }
15
- else {
16
- elements[i].innerHTML = data[dataName];
20
+ catch (error) {
21
+ console.error("Can not find data:" + dataName + " in the component");
17
22
  }
18
23
  }
19
24
  resolver_html(elements[i].children, data, controller);
@@ -10,13 +10,18 @@ export function resolver_txt(elements, data, controller) {
10
10
  if (result) {
11
11
  var dataName = elements[i].getAttribute("@txt");
12
12
  elements[i].removeAttribute("@txt");
13
- if (data[dataName] === undefined) {
14
- // @ts-ignore
15
- elements[i].innerText = controller.computed[dataName].call();
13
+ try {
14
+ if (data[dataName] === undefined) {
15
+ // @ts-ignore
16
+ elements[i].innerText = controller.computed[dataName]();
17
+ }
18
+ else {
19
+ // @ts-ignore
20
+ elements[i].innerText = data[dataName];
21
+ }
16
22
  }
17
- else {
18
- // @ts-ignore
19
- elements[i].innerText = data[dataName];
23
+ catch (error) {
24
+ console.error("Can not find data:" + dataName + " in the component");
20
25
  }
21
26
  }
22
27
  resolver_txt(elements[i].children, data, controller);
@@ -19,7 +19,12 @@ export function resolver_event(elements, methods, data) {
19
19
  var action = result[k].substring(4);
20
20
  var method = elements[i].getAttribute(result[k]);
21
21
  elements[i].removeAttribute(result[k]);
22
- elements[i].addEventListener(action, methods[method].bind(data));
22
+ try {
23
+ elements[i].addEventListener(action, methods[method].bind(data));
24
+ }
25
+ catch (error) {
26
+ console.error("Can not find method:" + method + " in the component");
27
+ }
23
28
  }
24
29
  }
25
30
  }
@@ -19,10 +19,10 @@ export function resolver_bind(nodes, data) {
19
19
  var dataName = nodes[i].getAttribute(result[k]);
20
20
  nodes[i].removeAttribute(result[k]);
21
21
  try {
22
- nodes[i].setAttribute(property, JSON.stringify(data[dataName]));
22
+ nodes[i].setAttribute(property, data[dataName]);
23
23
  }
24
24
  catch (e) {
25
- nodes[i].setAttribute(property, data[dataName]);
25
+ console.error(e.message);
26
26
  }
27
27
  }
28
28
  }
@@ -1,6 +1,6 @@
1
1
  import { inject, injectComputed, injectMethod, injectWatcher } from "../inject/inject";
2
2
  import { getProxyObject } from "../proxy/getProxy";
3
- import { getCodeSpaceForCommit, getCodeSpaceForProperty, getCodeSpaceForPublish, getCommitMethod, getPublishMethod, getSetterMethod } from "../utility/injectUtility";
3
+ import { getCodeSpaceForCommit, getCodeSpaceForPublish, getCommitMethod, getGetCodeSpaceForProperty, getGetterMethod, getPublishMethod, getSetCodeSpaceForProperty, getSetterMethod } from "../utility/injectUtility";
4
4
  import { dataInject } from "../utility/dataUtility";
5
5
  /**
6
6
  * This function is used to initiate the component controller object.
@@ -36,5 +36,7 @@ function cycleBridge(controller, proto, child, link, tagTemplate) {
36
36
  //注入receiver
37
37
  getCodeSpaceForPublish(controller.raw_data, getPublishMethod(controller));
38
38
  //注入setter
39
- getCodeSpaceForProperty(controller.raw_data, getSetterMethod(controller));
39
+ getSetCodeSpaceForProperty(controller.raw_data, getSetterMethod(controller));
40
+ //注入getter
41
+ getGetCodeSpaceForProperty(controller.raw_data, getGetterMethod(controller));
40
42
  }
@@ -5,7 +5,9 @@ export declare function getCodeSpaceForQuery(data: {}, $query: Map<string, any>)
5
5
  export declare function getCodeSpaceForRef(data: {}, $ref: Map<string, Element>): void;
6
6
  export declare function getCommitMethod(controller: ComponentController | PageController): any;
7
7
  export declare function getSetterMethod(controller: ComponentController | PageController): any;
8
+ export declare function getGetterMethod(controller: ComponentController | PageController): any;
8
9
  export declare function getCodeSpaceForCommit(data: {}, commit: any): void;
9
10
  export declare function getPublishMethod(controller: ComponentController | PageController): any;
10
11
  export declare function getCodeSpaceForPublish(data: {}, publisher: any): void;
11
- export declare function getCodeSpaceForProperty(data: {}, setter: any): void;
12
+ export declare function getSetCodeSpaceForProperty(data: {}, setter: any): void;
13
+ export declare function getGetCodeSpaceForProperty(data: {}, getter: any): void;
@@ -22,7 +22,13 @@ export function getSetterMethod(controller) {
22
22
  var setter = function (property, value) {
23
23
  this[property] = value;
24
24
  };
25
- return setter.bind(controller.raw_data);
25
+ return setter.bind(controller.proxyForMethods);
26
+ }
27
+ export function getGetterMethod(controller) {
28
+ var setter = function (property) {
29
+ return this[property];
30
+ };
31
+ return setter.bind(controller.proxyForMethods);
26
32
  }
27
33
  //注入对象
28
34
  export function getCodeSpaceForCommit(data, commit) {
@@ -44,6 +50,9 @@ export function getPublishMethod(controller) {
44
50
  export function getCodeSpaceForPublish(data, publisher) {
45
51
  Reflect.set(data, "$publish", publisher);
46
52
  }
47
- export function getCodeSpaceForProperty(data, setter) {
48
- Reflect.set(data, "$setter", setter);
53
+ export function getSetCodeSpaceForProperty(data, setter) {
54
+ Reflect.set(data, "$set", setter);
55
+ }
56
+ export function getGetCodeSpaceForProperty(data, getter) {
57
+ Reflect.set(data, "$get", getter);
49
58
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-core",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "description": "The core of render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",