gpt4 book ai didi

javascript - 从另一个自定义属性访问自定义属性的绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 04:52:51 24 4
gpt4 key购买 nike

假设我正在使用一个 Aurelia 自定义属性,当绑定(bind)到另一个自定义属性的值发生更改时是否可以触发事件?

更具体地说,我正在为 Chosen 构建一个 Aurelia 自定义属性。我让所有的选择都工作了。

但是<select>元素有 focus.bind="isFocused"在上面。我需要知道(在我选择的自定义属性中)该绑定(bind)值何时发生变化。

是否有某种方法可以在我选择的自定义属性中访问焦点绑定(bind)(从焦点自定义属性)?也许使用绑定(bind)引擎甚至内部方法?

(注意:我考虑过创建一个自定义元素来执行此操作,但 Aurelia 不能很好地包装元素。我必须为样式、类以及原始选择组件上的其他任何内容编写连接。)

最佳答案

我不确定这是否是正确的方法,但这是迄今为止我发现的最简单的方法。

my-attr.js

import { inject } from 'aurelia-framework';
import { Focus } from 'aurelia-templating-resources';

@inject(Focus)
export class MyAttrCustomAttribute {

constructor(focusAttr) {
this.focusAttr = focusAttr;
}

attached() {
console.log(this.focusAttr.value); //bound value

//...
//extending the change event. BE CAREFUL!
//...

const originalValueChanged = this.focusAttr.valueChanged;
this.focusAttr.valueChanged = function(newValue) {
console.log('Focus bound value has changed!'); //<-- call an event before "focus"
originalValueChanged.call(this, newValue); //<-- "focus" is enqueued
// <--- enqueue an event event here to be called after "focus"
}

}
}

运行示例https://gist.run/?id=ab04facb60b39f9c6a5fc49c2fd278a6

关于javascript - 从另一个自定义属性访问自定义属性的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com