gpt4 book ai didi

javascript - Aurelia,如何进行可选绑定(bind)

转载 作者:行者123 更新时间:2023-11-29 16:44:24 25 4
gpt4 key购买 nike

Aurelia 支持可选绑定(bind)吗?我在任何地方都找不到这个信息。我遇到的问题是我有一个 title 属性,该属性可能会也可能不会填充在对象数组中。我使用 repeat.fortitle.bind 但如果此属性不是对象数组的一部分,我根本不希望该属性存在。这在 Aurelia 中可能吗?

当将 Bootstrap-Select 与空 title 一起使用时,会引发错误。让 Aurelia 动态创建属性可以解决我的问题。

到目前为止我的代码看起来像这样

<select class="selectpicker" value.bind="value" options.bind="options" disabled.bind="disabled">
<option repeat.for="option of options" model.bind="option"
data-subtext.bind="option.subtext"
title.bind="option.title">
${option.name}
</option>

在此示例中,我希望将 data-subtexttitle 作为可选属性。这可行吗?

由于这是一个自定义元素,我尝试删除对象的 title 属性 delete this.element.title 但这似乎不起作用。我也尝试过使用 jquery,但还是没有成功。

最佳答案

在很多情况下我没有对此进行测试,但我认为您也可以创建自定义绑定(bind)行为,如下所示:

export class OptionalBindingBehavior {  
bind(binding, scope, interceptor) {

binding.originalupdateTarget = binding.updateTarget;
binding.originalTargetProperty = binding.targetProperty;
binding.updateTarget = val => {
if (val === undefined || val === null || val === '') {
binding.targetProperty = null;
} else {
binding.targetProperty = binding.originalTargetProperty;
}
binding.originalupdateTarget(val);
}
}

unbind(binding, scope) {
binding.updateTarget = binding.originalupdateTarget;
binding.originalupdateTarget = null;
binding.targetProperty = binding.originalTargetProperty;
binding.originalTargetProperty = null;
}
}

然后像这样使用它:

<a href.bind="message & optional">${message}</a>

关于javascript - Aurelia,如何进行可选绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663873/

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