##// END OF EJS Templates
fixed strict mode @bind decorator
cin -
r28:b88fac0e76c0 v1.0.0-rc13 default
parent child
Show More
@@ -0,0 +1,22
1 import { djbase, djclass, bind, prototype } from "../declare";
2
3 import { DjxWidgetBase } from "../tsx/DjxWidgetBase";
4 import { createElement } from "../tsx";
5
6
7 @djclass
8 export class MyWidget extends djbase(DjxWidgetBase) {
9
10 @bind({node: "titleNode", type:"innerHTML"})
11 title = "";
12
13 @prototype()
14 counter = 0;
15
16 render() {
17 return <div>
18 <h1 data-dojo-attach-point="titleNode"></h1>
19 </div>;
20 }
21
22 }
@@ -43,12 +43,8 configureTsMain {
43 43
44 44 configureTsTest {
45 45 compilerOptions {
46 baseUrl = "."
47 paths = [
48 "@implab/djx" : [ sources.main.output.typingsDir.get().toString() ],
49 "@implab/djx/*" : [ "${sources.main.output.typingsDir.get().toString()}/*" ]
50 ]
51 types = ["requirejs", sources.main.output.typingsDir.get().toString()]
46 typeRoots = []
47 types = ["requirejs", sources.main.output.typingsDir.get().toString() ]
52 48 }
53 49 }
54 50
@@ -80,11 +80,11 export function djbase<T0, T1, T2, T3, T
80 80 /** Создает конструктор-заглушку из списка базовых классов, используется
81 81 * для объявления классов при помощи `dojo/_base/declare`.
82 82 *
83 * Создает пустой конструтор, с пустым стандартным прототипом, это нужно,
83 * Создает пустой конструктор, с пустым стандартным прототипом, это нужно,
84 84 * поскольку в унаследованном классе конструктор обязательно должен вызвать
85 85 * `super(...)`, таким образом он вызовет пустую функцию.
86 86 *
87 * Созданный конструтор хранит в себе список базовых классов, который будет
87 * Созданный конструктор хранит в себе список базовых классов, который будет
88 88 * использован декоратором `djclass`, который вернет класс, объявленный при
89 89 * помощи `dojo/_base/declare`.
90 90 *
@@ -215,21 +215,17 function isNodeBindSpec(v: any): v is No
215 215 return "node" in v;
216 216 }
217 217
218 function isMemberBindSpec(v: any): v is MemberBindSpec {
219 return "member" in v;
220 }
221
222 218 /** Декорирует свойства виджета для привязки их к внутренним членам, либо DOM
223 219 * элементам, либо свойству внутреннего объекта.
224 220 *
225 221 * @param {NodeBindSpec | MemberBindSpec} params Параметры связывания.
226 222 */
227 223 export function bind(params: NodeBindSpec | MemberBindSpec) {
228 if (isNodeBindSpec(params))
224 if (isNodeBindSpec(params)) {
229 225 return (target: any, name: string) => {
230 226 target[makeSetterName(name)] = params;
231 227 };
232 else if (isMemberBindSpec(params)) {
228 } else {
233 229 return (target: any, name: string) => {
234 230 target[name] = null;
235 231 target[makeSetterName(name)] = function (v: any) {
@@ -7,7 +7,7
7 7 "typings"
8 8 ],
9 9 "types": [
10 "requirejs", "./typings/index", "dojo-typings"
10 "requirejs", "./typings", "dojo-typings"
11 11 ]
12 12 }
13 } No newline at end of file
13 }
@@ -2,3 +2,9 declare module "@implab/djx/css!*" {
2 2 const result: { url: string };
3 3 export = result;
4 4 }
5
6 declare namespace JSX {
7 interface IntrinsicElements {
8 [name: string]: any;
9 }
10 }
@@ -1,8 +1,7
1 1 import { test } from "./TestTraits";
2 2 import { delay } from "@implab/core-amd/safe";
3 3 import { assert } from "chai";
4 import css = require("@implab/djx/css!my,css");
5 import {} from "@implab/djx/i18n";
4 import css = require("@implab/djx/css!my.css");
6 5
7 6 test("simple", (ok, fail, log) => {
8 7 setTimeout(() => {
@@ -1,7 +1,6
1 1 {
2 2 "extends": "../tsconfig",
3 3 "compilerOptions": {
4 "baseUrl": ".",
5 4 //"rootDir": "ts",
6 5 "rootDirs": [
7 6 "ts",
@@ -9,10 +8,6
9 8 "../main/ts",
10 9 "../main/typings"
11 10 ],
12 "paths": {
13 "@implab/djx" : ["../main/ts", "../main/typings"],
14 "@implab/djx/*" : ["../main/ts/*", "../main/typings/*" ]
15 },
16 "types": ["requirejs", "../main/typings"]
11 "types": ["requirejs", "../main/typings", "dojo-typings"]
17 12 }
18 13 } No newline at end of file
@@ -6,7 +6,7
6 6 "types": [],
7 7 "experimentalDecorators": true,
8 8 "jsxFactory": "createElement",
9 //"skipLibCheck": true,
9 "skipLibCheck": true,
10 10 "jsx": "react",
11 11 "lib": ["es5", "es2015.promise", "es2015.symbol", "es2015.iterable", "dom", "scripthost"]
12 12 }
General Comments 0
You need to be logged in to leave comments. Login now