Aurelia Select 禁用
Aurelia Select Disable
我的 Aurelia 项目中有一组 select
框和 input
字段,每次特定输入字段的值发生变化时,我都需要禁用一个特定的 select 框。问题是每次我更改输入字段上的值时,select 框的 disabled
状态都不会改变。
我使用 BindingEngine
来观察每次输入字段值的变化。我有一个布尔值数组,表示绑定到每个 select 框的 disable.bind
属性的绑定值。
我想知道每次输入中的值发生变化时如何更改特定 select 框的 disable.bind
状态。
预期行为:如果 input
字段值大于 0,我会启用 select
,否则我会禁用它。
我这里有一个演示:https://gist.run/?id=726eef81bb88e8a695d4ae5df6b2e679
问题很微妙。这是你的数组:
this.array = [true,false,true,false];
你像这样绑定它:
<select disabled.bind="array[$index]">
你认为你正在绑定到一个变量(即数组),但你真正绑定的是数组索引中的值,即文字值 true
或 false
.
对于索引 0,绑定实际上与此相同:
<select disabled.bind="true">
文字值当然不能更改 - 只有保存它们的变量可以。
如果您将数组更改为如下所示:
this.array = [{disabled:true},{disabled:false},{disabled:true},{disabled:false}];
以及您对此的绑定:
<select disabled.bind="array[$index].disabled">
那么应该可以了。
注:
我将对您的代码进行整体改进,其中最重要的是将您的订阅置于相反的生命周期中。请参阅此更新的要点:
https://gist.run/?id=a01425ec61a4dc7c1997408ff92c52a2
我的 Aurelia 项目中有一组 select
框和 input
字段,每次特定输入字段的值发生变化时,我都需要禁用一个特定的 select 框。问题是每次我更改输入字段上的值时,select 框的 disabled
状态都不会改变。
我使用 BindingEngine
来观察每次输入字段值的变化。我有一个布尔值数组,表示绑定到每个 select 框的 disable.bind
属性的绑定值。
我想知道每次输入中的值发生变化时如何更改特定 select 框的 disable.bind
状态。
预期行为:如果 input
字段值大于 0,我会启用 select
,否则我会禁用它。
我这里有一个演示:https://gist.run/?id=726eef81bb88e8a695d4ae5df6b2e679
问题很微妙。这是你的数组:
this.array = [true,false,true,false];
你像这样绑定它:
<select disabled.bind="array[$index]">
你认为你正在绑定到一个变量(即数组),但你真正绑定的是数组索引中的值,即文字值 true
或 false
.
对于索引 0,绑定实际上与此相同:
<select disabled.bind="true">
文字值当然不能更改 - 只有保存它们的变量可以。
如果您将数组更改为如下所示:
this.array = [{disabled:true},{disabled:false},{disabled:true},{disabled:false}];
以及您对此的绑定:
<select disabled.bind="array[$index].disabled">
那么应该可以了。
注:
我将对您的代码进行整体改进,其中最重要的是将您的订阅置于相反的生命周期中。请参阅此更新的要点: https://gist.run/?id=a01425ec61a4dc7c1997408ff92c52a2