如何在ngIf中分配值

时间:2019-12-25 18:11:30

标签: angular typescript angular-ng-if

我是Angular的新手。我正在学习指令。我正在使用pTooltip中的primeng。但是我想根据条件在pTooltip中显示文本。

让我们以stackoverflow iself为例。您不能两次回答一个答案。如果用户尚未对该特定文章进行投票,则该用户应获得msg1,否则应获得msg2。其中:

msg1="I found this article very useffeul.";
msg2="You've already upvoted this article";

这是我的代码:

article.component.html

<button 
  class="btn btn-success"
  *ngIf="allowUpvote ? pTooltip={{msg1}} : pTooltip={{msg2}}
  [disabled]="!allowUpvote">
  UPVOTE
</button>

article.component.ts

...
allowUpvote=true;
msg1="I found this article very useffeul.";
msg2="You've already upvoted this article";
...

ngOnInit() {
  for(var i=0;i<5;i++) {
    if(this.currentLoggedInUserId==this.articleDetails.upvotersList[i]) {
      this.allowUpvote=false; //It will be set false if the user is there in the upvoters list
    }
  }
});

但是我遇到了这个错误:

  

解析器错误:绑定不能包含[allowUpvote吗? pTooltip = {{msg1}}:pTooltip = {{msg2}}]

请给我一些指导。

2 个答案:

答案 0 :(得分:4)

尝试一下

if (remainderX <= minWidthX)
{
   fragColor = vec4(color_l1, 1.0);
   return;
}

vec3 dyY = dFdy(vec3(0, vertexPosition.y, vertexPosition.z));
vec3 dxY = dFdx(vec3(0, vertexPosition.y, vertexPosition.z));

使用[],解释器知道读取和执行“”之间的代码

已更新Plochie

可以更好地解释
  

当您说pTooltip =“ value”时,表示将“”中提供的值用作pTooltip的参数。在这里,您没有绑定component的值,只是给了常量。要进行数据绑定,您需要[]。现在,在[]之后,意味着将用“ Tools”编写的内容与pTooltip绑定,因此它将执行“”中的代码,并且该语句的输出随后将被视为pTooltip的输入

答案 1 :(得分:3)

应该是

[pTooltip]="(allowUpvote) ? msg1 : msg2"

编辑:因此,这意味着您应该抛弃* ngIf,在这种情况下不需要它。