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


TypeScript exports.expression_eval函數代碼示例

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


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

示例1: _modelArgsBinding

function _modelArgsBinding(args: any[], expr, model, ctx, ctr) {
    var arr = null;
    if (expr == null) {
        var i = args.length;
        arr = new Array(i);
        while (--i > -1) {
            arr[i] = expression_eval(args[i].name, model, ctx, ctr);
        }
    } else {
        arr = expression_evalStatements(expr, model, ctx, ctr);
    }
    var out = {},
        arrMax = arr.length,
        argsMax = args.length,
        i = -1;
    while (++i < arrMax && i < argsMax) {
        var val = arr[i];
        if (val == null) {
            var type = args[i].type;
            if (type != null) {
                var Type = type;
                if (typeof type === 'string') {
                    Type = expression_eval(type, model, ctx, ctr);
                    if (Type == null) {
                        error_withCompo(type + ' was not resolved', ctr);
                    } else {
                        val = Di.resolve(Type);
                    }
                }
            }
        }
        out[args[i].name] = val;
    }
    return out;
}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:35,代碼來源:compo_meta.ts

示例2: compo_extends

	function compo_extends(extends_, model, ctr) {
		var args = [];
		if (extends_ == null)
			return args;

		var imax = extends_.length,
			i = -1,
			await = 0, x;
		while( ++i < imax ){
			x = extends_[i];
			if (x.compo) {
				var compo = customTag_get(x.compo, ctr);
				if (compo != null) {
					args.unshift(compo);
					continue;
				}

				var obj = expression_eval(x.compo, model, null, ctr);
				if (obj != null) {
					args.unshift(obj);
					continue;
				}
				log_error('Nor component, nor scoped data is resolved:', x.compo);
				continue;
			}
		}
		return args;
	}
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:28,代碼來源:Define.ts

示例3: expression_createListener

 return expression_createListener(function(){
     let value = expression_eval(expr, model, ctx, ctr);
     let args = _Array_slice.call(arguments);
     
     args[0] = value == null ? '' : value;
     fn.apply(this, args);
 });
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:7,代碼來源:expression.ts

示例4: function

 render: function(model, ctx, container, ctr, children){
     var directive = For.parseFor(this.expression),
         attr = this.attr;
     
     attr[attr_PROP_1] = directive[0];
     attr[attr_PROP_2] = directive[1];
     attr[attr_TYPE] = directive[2];
     attr[attr_EXPR] = directive[3];
     
     var value = expression_eval(directive[3], model, ctx, ctr);
     if (value == null) 
         return;
     
     if (is_Array(value)) 
         arr_createRefs(value);
     
     For.build(
         value,
         directive,
         this.nodes,
         model,
         ctx,
         container,
         this,
         children
     );
 },
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:27,代碼來源:for.ts

示例5: mergeArgs

    function mergeArgs(argMetas, args) {
        var model = args[1];
        var controller = args[4];

        var tLength = argMetas.length,
            aLength = args.length,
            max = tLength > aLength ? tLength : aLength,
            arr = new Array(max),
            i = -1;

        while (++i < max) {
            // injections are resolved first.
            if (i < tLength && argMetas[i].type != null) {
                var Type = expression_eval(
                    argMetas[i].type,
                    model,
                    null,
                    controller
                );
                arr[i] = Di.resolve(Type);
                continue;
            }
            if (i < aLength && args[i] != null) {
                arr[i] = args[i];
                continue;
            }
        }
        return arr;
    }
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:29,代碼來源:define-methods.ts

示例6: function

	'expression_eval multiple': function() {
		eq_(true, expression_eval("age > 10 && info.name == 'Alex'", {
			info: {
				name: 'Alex'
			},
			age: 100
		}));
	},
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:8,代碼來源:condition.spec.ts

示例7: function

    render: function(node, model, ctx, container, ctr, children){
        var els = [];
        builder_build(node.nodes, model, ctx, container, ctr, els);
        arr_pushMany(children, els)

        var visible = expression_eval(node.expression, model, ctx, ctr);
        toggle(els, visible);
    }
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:8,代碼來源:visible.ts

示例8: function

    render: function(node, model, ctx, el, ctr, elements){

        var value = expression_eval(node.expression, model, ctx, ctr),
            nodes = getNodes(value, node.nodes, model, ctx, ctr);
        if (nodes == null)
            return;

        builder_build(nodes, model, ctx, el, ctr, elements);
    },
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:9,代碼來源:switch.ts

示例9: function

 getObject: function(model, ctx, ctr){
     var obj = {},
         attr = this.attr,
         key;
     for(key in attr) {
         obj[key] = expression_eval(attr[key], model, ctx, ctr);
     }
     return obj;
 }
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:9,代碼來源:var.ts

示例10: expression_parse

		var awaiters = arr.map(async str => {
			var ast = expression_parse('"I`m " + user->name + user->name');
			eq_(ast.async, true);

			var user = {name: 'John'};
			
			var result = await expression_eval(ast, { user });
			deepEq_(result, 'I`m JohnJohn');	
		});
開發者ID:atmajs,項目名稱:MaskJS,代碼行數:9,代碼來源:expressions-async.spec.ts


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