render-core 1.3.6 → 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]();
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;
@@ -14,7 +14,7 @@ export function getCommitMethod(controller) {
14
14
  for (var _i = 1; _i < arguments.length; _i++) {
15
15
  args[_i - 1] = arguments[_i];
16
16
  }
17
- this.receiver(method, args);
17
+ return this.receiver(method, args);
18
18
  };
19
19
  return commit.bind(controller);
20
20
  }
@@ -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.6",
3
+ "version": "1.3.8",
4
4
  "description": "The core of render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -9,8 +9,14 @@ export function renderHtml(collection, link) {
9
9
  //遍历element节点,判断是否为自定义标签
10
10
  for (var i = 0; i < collection.length; i++) {
11
11
  if (isUnKnown(collection[i].nodeName.toUpperCase())) {
12
- //自定义标签
13
- Render(Reflect.get(window, "tagLib").get(collection[i].nodeName.toUpperCase()), collection[i].parentNode, collection[i], link);
12
+ var component = Reflect.get(window, "tagLib").get(collection[i].nodeName.toUpperCase());
13
+ if (component === undefined) {
14
+ console.log(collection[i].nodeName.toUpperCase() + " can't be found in renderJs, you should firstly register in renderJs");
15
+ }
16
+ else {
17
+ //自定义标签
18
+ Render(component, collection[i].parentNode, collection[i], link);
19
+ }
14
20
  }
15
21
  else {
16
22
  //非自定义标签,深度解析