通过Angular2模板引用传递变量

P_A*_*dre 1 javascript

假设我有一个名为isVisible的变量.我有一个叫做的方法

ReverseVariable(variable: boolean)
{
   variable = !variable;
}
Run Code Online (Sandbox Code Playgroud)

我想从像这样的模板中调用这个方法

<button (click)="ReverseVariable(isVisible)"></button>
Run Code Online (Sandbox Code Playgroud)

我想在参数中给它isVisible并且让isVisible反转自己.类似以下示例的东西不是一个选项

ReverseVisibility()
{
  this.isVisible = !this.isVisible;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以通过引用传递变量?

LLa*_*Lai 5

不像布尔值这样的原始数据类型.你可以做的是使非原始像对象

isVisible = {
    flag: true
}
Run Code Online (Sandbox Code Playgroud)

然后在你的函数中切换它

ReverseVisibility(isVisible)
{
   isVisible.flag = !isVisible.flag;
}
Run Code Online (Sandbox Code Playgroud)

这是plnkr演示这个(https://plnkr.co/edit/VYEimNoHZvGxeE4S2W4L?p=preview)