如何更改 Angular 指令上的变量?

How can I change a variable on an Angular directive?

我正在尝试为 Angular 指令的 HTML 中的 HTML 工具提示元素创建一个简单的切换。我在组件中定义属性,我已经验证它正在传递给指令,但无论我在 HTML 中尝试什么,它都不会修改属性的值。

这是我的组件:

import { Component, Input, OnChanges, SimpleChanges} from '@angular/core';
import { Utils } from './utils';
@Component({
  selector: 'm-chart',
  templateUrl: './m.component.html',
  styleUrls: ['./s-chart.scss']
})
export class MembersChartComponent implements OnChanges {
  constructor (private utils: Utils) {}
  @Input() membersData:any;
  @Input() infoModalOpen:boolean;
}

这是父模板 html:

<div class="row no-margin">
      <m-chart *ngIf="summaryData && summaryData.members" 
      [mData]="summaryData.members" infoModalOpen="false"></m-chart>
</div>

这里是指令的 HTML:

<div class="row">
  <div ng-mouseover="infoModalOpen = !infoModalOpen" ng-mouseleave="infoModalOpen = !infoModalOpen" class="trigger">|</div>
  <div ng-show="infoModalOpen">Tooltip content here</div>
</div>

感谢任何帮助,谢谢!

我建议写函数如下:

$scope.hoverIn = function(){
  this.hoverEdit = true;
};

$scope.hoverOut = function(){
    this.hoverEdit = false;
};

然后按如下方式更改您的 html 代码:

<div ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()" class="trigger">|</div>

请告诉我这是否有效!

祝你好运