render-core 1.3.7 → 1.3.9

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.
@@ -16,7 +16,7 @@ export declare class AppController implements AppTip {
16
16
  */
17
17
  loadFileds(): void;
18
18
  /**
19
- * store fileds
19
+ * store fields
20
20
  */
21
21
  storeFileds(): void;
22
22
  setFiled(filed: string, value: any): void;
@@ -51,7 +51,7 @@ var AppController = /** @class */ (function () {
51
51
  }
52
52
  };
53
53
  /**
54
- * store fileds
54
+ * store fields
55
55
  */
56
56
  AppController.prototype.storeFileds = function () {
57
57
  for (var filedsKey in this.fileds) {
@@ -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/index.d.ts CHANGED
@@ -41,3 +41,9 @@ export declare class RenderJS implements RenderTip {
41
41
  */
42
42
  run(): void;
43
43
  }
44
+ /**
45
+ * The tool to register element to window
46
+ * @param name
47
+ * @param func
48
+ */
49
+ export declare function registerElements(name: string, func: any): void;
package/index.js CHANGED
@@ -74,3 +74,11 @@ var RenderJS = /** @class */ (function () {
74
74
  return RenderJS;
75
75
  }());
76
76
  export { RenderJS };
77
+ /**
78
+ * The tool to register element to window
79
+ * @param name
80
+ * @param func
81
+ */
82
+ export function registerElements(name, func) {
83
+ Reflect.set(window, name, func);
84
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-core",
3
- "version": "1.3.7",
3
+ "version": "1.3.9",
4
4
  "description": "The core of render-js",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -11,7 +11,7 @@ export function renderHtml(collection, link) {
11
11
  if (isUnKnown(collection[i].nodeName.toUpperCase())) {
12
12
  var component = Reflect.get(window, "tagLib").get(collection[i].nodeName.toUpperCase());
13
13
  if (component === undefined) {
14
- console.log(collection[i].nodeName.toUpperCase() + " can't be found in renderJs, you should firstly register in renderJs");
14
+ console.error(collection[i].nodeName.toUpperCase() + " can't be found in renderJs, you should firstly register in renderJs");
15
15
  }
16
16
  else {
17
17
  //自定义标签