ich bin gerade dabei ein in jinja2 geschriebenes Template so auseinander zu nehmen, um ein Formular auf Basis des Templates dynamisch zu erzeugen.
Ich weiß, dass dies bereits mittels dem Modul jinja2toschema umgesetzt wurde, das ist mir allerdings nicht dynamisch genug und bietet nicht die Möglichkeit auf den Context des Templates zuzugreifen. Auf Basis von jinja2schema habe ich das ganze neu geschrieben. Das ganze funktioniert auch relativ gut.
Nun bin ich am Javascript Teil und versuche gerade die von jinja2 'ge-parste' if-Bedingung via JavaScript auszuwerten.
Folgendermaßen sieht eine jinja2 'ge-parste' If-Bedingung aus:
Code: Alles auswählen
Or(left=Compare(expr=Name(name='checkIfVar3', ctx='load'), ops=[Operand(op='eq', expr=Const(value=u'Val3'))]), right=Compare(expr=Name(name='checkIfVar3', ctx='load'), ops=[Operand(op='eq', expr=Const(value=u'Val2'))]))
z.B.
Code: Alles auswählen
var And = function(left, right) {
return (left && right);
};
var Or = function(left, right){
return (left || right);
};
var Const = function(value){
return value;
}
var Name = function(name, ctx){
return $('[name="'+name+'"]').val();
}
var Compare = function(expr, ops){
//????????????
};
Ich verstehe nicht warum dies eine Liste ist. Ganz gleich, wie ich die Bedingung auch anpasse, ich habe nie mehr als ein Objekt in der Liste.class jinja2.nodes.Compare(expr, ops)¶
Compares an expression with some other expressions. ops must be a list of Operands.
Node type: Expr
Gibt es überhaupt die Option mehrerer ops in einem Compare?
Gruß Andre