覆盖PrimeNG的"MultiSelect"组件中的函数

ale*_*kov 1 javascript multi-select primeng angular

我是新来的JS.我有一个小的front-end task,我不知道如何解决它几个小时的谷歌搜索.

我需要在PrimeNG MultiSelect组件中覆盖此函数:MultiSelect.prototype.updateLabel.

在项目中,我正在处理标签应该是静态的,但alt文本(当悬停时)应该是动态的,就像在原始实现中一样.

如果你指出我正确的方向会很棒.我找到了这个页面,但它没有帮助我,因为我不知道如何正确实现它.

在此先感谢您的帮助.

在此输入图像描述

小智 5

我必须在我的项目中做同样的事情.

以下是我为使其工作所做的工作:在组件的.html文件中添加如下内容:

<p-multiSelect #multiselect
        [options]="someOptions"
        [(ngModel)]="someModel.options"
        [defaultLabel]="Did this work?"
        (onChange)="onChange($event)"
>
</p-multiSelect>
Run Code Online (Sandbox Code Playgroud)

在组件文件中的构造函数下面,添加:

@ViewChild('multiselect') multi: MultiSelect;
Run Code Online (Sandbox Code Playgroud)

我把它放在一个总是被调用的setter中,但是无论你需要在哪里更改标签 - 也许在订阅函数中 - 你都可以使用:

this.multi.updateLabel = function () {
    var label = this.value.length.toString() + " Data Points Selected";
    this.valuesAsString = label;
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!