當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript class.class_create函數代碼示例

本文整理匯總了TypeScript中@utils/class.class_create函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript class_create函數的具體用法?TypeScript class_create怎麽用?TypeScript class_create使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了class_create函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: class_create

(function(){
	// TODO: refactor methods, use MaskNode Serialization instead Model Serialization
	custom_Tags['var'] = class_create(customTag_Base, {
		renderStart: function(model, ctx){
			set(this, this.attr, true, model, ctx);
		},
		onRenderStartClient: function(){
			set(this, this.model, false)
		}
	});

	function set(self, source, doEval, model?, ctx?) {
		// set data also to model, so that it will be serialized in NodeJS
		self.model = {};

		var parent = self.parent;
		var scope  = parent.scope;
		if (scope == null) {
			scope = parent.scope = {};
		}
		for(var key in source){
			self.model[key] = scope[key] = doEval === false
				? source[key]
				: expression_eval(source[key], model, ctx, parent);
		}
	}
}());
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:27,代碼來源:var.ts

示例2: m_registerModuleType

export function m_registerModuleType(baseModuleType, newType, mix) {
    _typeMappings[newType] = baseModuleType;
    m_Types[newType] = class_create(
        m_Types[baseModuleType],
        mix
    );
}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:7,代碼來源:utils.ts

示例3: function

(function () {
    manager_get = function (ctx, el) {
        if (ctx == null || is_DOM) {
            return manager || (manager = new Manager(document.body));
        }
        var KEY = '__contentManager';
        return ctx[KEY] || (ctx[KEY] = new Manager(el));
    };
    var manager;
    var Manager = class_create({
        constructor: function (el) {
            this.container = el.ownerDocument.body;
            this.ids = {};
        },
        append: function (tagName, node) {
            var id = node.id;
            var el = this.ids[id];
            if (el !== void 0) {
                return el;
            }
            el = render(tagName
                , node.attr
                , node.body
                , node.id
                , this.container
            );
            this.ids[id] = el;
        }
    });
}());
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:30,代碼來源:content.ts

示例4: _createHandlerForNodes

function _createHandlerForNodes(nodes, module) {
    return class_create({
        scope: module.scope,
        location: module.location,
        nodes: nodes,
        getHandler: _module_getHandlerDelegate(module)
    });
}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:8,代碼來源:ModuleMask.ts

示例5: _createExports

function _createExports(nodes, model, module) {
    var exports = module.exports,
        items = module.importItems,
        getHandler = _module_getHandlerDelegate(module);

    var i = -1,
        imax = items.length;
    while (++i < imax) {
        var x = items[i];
        if (x.registerScope) {
            x.registerScope(module);
        }
    }

    var i = -1,
        imax = nodes.length;
    while (++i < imax) {
        var node = nodes[i];
        var name = node.tagName;
        if (name === 'define' || name === 'let') {
            var Base = {
                getHandler: _fn_wrap(customTag_Compo_getHandler, getHandler),
                getModule: _module_getModuleDelegate(module),
                location: module.location
            };
            var Ctor = Define.create(node, model, module, Base);
            var Proto = Ctor.prototype;
            if (Proto.scope != null || module.scope != null) {
                Proto.scope = obj_extend(Proto.scope, module.scope);
            }

            var compoName = node.name;
            if (name === 'define') {
                exports[compoName] = Ctor;
                customTag_register(compoName, Ctor);
            }
            if (name === 'let') {
                customTag_registerResolver(compoName);
            }
            exports.__handlers__[compoName] = Ctor;
        }
    }
    exports['*'] = class_create(customTag_Base, {
        getHandler: getHandler,
        location: module.location,
        nodes: exports.__nodes__,
        scope: module.scope
    });

    return exports;
}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:51,代碼來源:ModuleMask.ts

示例6: class_create

	(function(){
		SyncMapper = class_create({
			map: function(node, fn) {
				var mapper = getMapper(node);
				return mapper(node, fn);
			}
		});
		function getMapper (node) {
			/* not strict */
			if (node.compoName) {
				return mapCompo;
			}
			return mapNode;
		}
		function mapNode(node, fn, parent?, index?) {
			if (node == null)
				return null;

			var nextNode = isFragment(node) 
				? new Dom.Fragment 
				: fn(node);
			if (nextNode == null) {
				return null;
			}
			var nodes = safe_getNodes(node);
			if (nodes == null) {
				return nextNode;
			}
			nextNode.nodes = coll_map(nodes, function (x) { 
				return mapNode(x, fn, node) 
			});
			return nextNode;
		}
		function mapCompo(compo, fn, parent?) {
			if (compo == null)
				return null;

			var next = fn(compo);
			if (next == null || compo.components == null) {
				return next;
			}
			next.components = coll_map(compo.components, function (x) { 
				return mapCompo(x, fn, compo)
			});
			return next;
		}
	}());
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:47,代碼來源:TreeWalker.ts

示例7: parse

(function () {
    function parse (def) {
        var rgx    = /^\s*([\w]+)[:\$]+([\w]+)\s*$/,
            parts  = rgx.exec(def),
            name   = parts && parts[1],
            signal = parts && parts[2];
        if (parts == null || name == null || signal == null) {
            log_error('PipeCompo. Invalid name.', def, 'Expect', rgx.toString());
            return null;
        }
        return [name, signal];
    }
    function attach(node, ctr) {
        var pipes = ctr.pipes;
        if (pipes == null) {
            pipes = ctr.pipes = {};
        }
        var signal = parse(node.name);
        if (signal == null) {
            return;
        }
        var name = signal[0],
            type = signal[1],
            pipe = ctr.pipes[name];
        if (pipe == null) {
            pipe = pipes[name] = {};
        }
        pipe[type] = node.fn;
    }
    custom_Tags['pipe'] = class_create(Method, {
        renderEnd: function(){
            attach(this, this.parent);
        }
    });
    custom_Tags.pipe.attach = attach;
}());
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:36,代碼來源:handlers.ts

示例8: class_create

import { class_create } from '@utils/class'
import { _appendChild } from './utils';
import { dom_TEXTNODE } from './NodeType';

/**
 * @name TextNode
 * @type {class}
 * @property {type} [type=2]
 * @property {(string|function)} content
 * @property {IMaskNode} parent
 * @memberOf mask.Dom
 */
export const TextNode = class_create({
	constructor: function(text, parent) {
		this.content = text;
		this.parent = parent;
	},
	type: dom_TEXTNODE,
	content: null,
	parent: null,
	sourceIndex: -1
});
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:22,代碼來源:TextNode.ts

示例9: class_create

import { class_create } from '@utils/class';
import { obj_extend } from '@utils/obj';
import { class_Dfr } from '@utils/class/Dfr';


	export const builder_Ctx = class_create(class_Dfr as any, {
		constructor: function(data){
			obj_extend(this, data);
		},
		// Is true, if some of the components in a ctx is async
		async: false,
		// List of busy components
		defers: null /*Array*/,

		// NodeJS
		// Track components ID
		_id: null,
		// ModelsBuilder for HTML serialization
		_models: null,

		// ModulesBuilder fot HTML serialization
		_modules: null,

		_redirect: null,
		_rewrite: null
	});

	(builder_Ctx as any).clone = function(ctx){
		var data = {};
		for(var key in ctx) {
			if (builder_Ctx.prototype[key] === void 0) {
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:31,代碼來源:ctx.ts

示例10: class_create

import { class_create } from '@utils/class';
import { log_error } from '@core/util/reporters';
import { IBinder } from './IBinder';
import { expression_evalStatements } from '@project/expression/src/exports';

/*
 *	"expression, ...args"
 *	expression: to get the IEventEmitter
 */
export const EventEmitterBinder = class_create(IBinder, {
		on: function(exp, model, ctx, ctr, cb){
			call('on', exp, model, ctr, cb);
		},
		off: function(exp, model, ctr, cb){
			call('off', exp, model, ctr, cb);
		},
	});

	function call (method, expr, model, ctr, cb) {
		var arr = expression_evalStatements(expr, model, null, ctr);
		var observable = arr.shift();
		if (observable == null || observable[method] == null) {
			log_error('Method is undefined on observable: ' + method);
			return;
		}
		arr.push(cb);
		observable[method].apply(observable, arr);
	}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:28,代碼來源:EventEmitterBinder.ts


注:本文中的@utils/class.class_create函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。