Javascript 用于更改角度2或更高版本中的特定变量的动态脚本
目前,您可以使用用户的最终脚本。此脚本可以修改一些以前可用的变量。 我用纯javascript创建了一个小示例,我想在angular 2+中也这样做 提前感谢您的关注 HTML代码Javascript 用于更改角度2或更高版本中的特定变量的动态脚本,javascript,angular,Javascript,Angular,目前,您可以使用用户的最终脚本。此脚本可以修改一些以前可用的变量。 我用纯javascript创建了一个小示例,我想在angular 2+中也这样做 提前感谢您的关注 HTML代码 <div class="container"> <form> <div class="form-group"> <label for="descricao">Nome</label>
<div class="container">
<form>
<div class="form-group">
<label for="descricao">Nome</label>
<input type="text" id="descricao" name="descricao" class="form-control" />
</div>
<div class="form-group">
<label for="valor">Valor</label>
<input type="text" id="valor" name="valor" value="10" class="form-control" />
</div>
<div class="form-group">
<label for="quantidade">Quantidade</label>
<input type="text" id="quantidade" name="quantidade" value="20" class="form-control" />
</div>
<div class="form-group">
<label for="total">Total</label>
<input type="text" id="total" name="total" class="form-control" />
</div>
<div class="form-group">
<label for="codex">Code</label>
<textarea id="codex" name="codex" rows="10" cols="100" class="form-control">
if (qtde < 15) {
vlr = 10;
}
else
{
vlr = 9;
}
tot = vlr * qtde;
</textarea>
</div>
<button type="button" id="calcular" name="calcular" onclick="calcularx();" class="btn btn-primary">Calcular</button>
</form>
</div>
这是一个plnkr,它将实现您所寻找的目标 使用eval创建函数,然后使用组件上下文调用它。组件中的所有函数和变量都可用于文本框代码: 模板 价值:
<label>Code:</label>
<textarea [(ngModel)]="code"></textarea> <br>
<button (click)="executeCode(code)">Do it.</button>
然而,请记住eval通常是邪恶的,并且这个用例非常奇怪。我不确定你的用户是否应该控制代码。无论如何,这取决于你
此外,如果您想避免代码文本框中的“this.”,则始终可以在变量名上使用replace将其添加到场景后面
<label>Code:</label>
<textarea [(ngModel)]="code"></textarea> <br>
<button (click)="executeCode(code)">Do it.</button>
export class HelloWorld {
value = 100;
code = 'this.value = this.value * 100';
executeCode(code){
let fn = eval("(function(){ {0} })".replace("{0}", code));
fn.call(this);
}
}