gpt4 book ai didi

javascript - Ember selectionbinding - 如何让它燃烧

转载 作者:行者123 更新时间:2023-11-30 13:15:08 25 4
gpt4 key购买 nike

致意

我一直在尝试寻找一种方法来编辑 Ember.Select 框,而无需实际手动选择值,而是在内部编辑它们。我的 Ember.Select 看起来像这样:

{{view Ember.Select 
contentBinding="Et.router.availablePhasesController"
optionValuePath="content.id"
optionLabelPath="content.label"
selectionBinding="a.selectedPhase"
}}

availablePhasesController 看起来像这样:

Et.AvailablePhasesController = Ember.ArrayController.extend({
content: [
{ id: 1, label: "1" },
{ id: 2, label: "2" },
{ id: 3, label: "3" }
]
});

当我从选择框中选择这些值时,这一切都很好,但我的问题是,我能否以某种方式更改由 Ember.Select 创建的选择元素上的值,它会触发绑定(bind),这意味着我的“a .selectedPhase"还将获取用于更改选择元素的值。

我尝试将 jQuery 与 .val() 和 .attr("value") 一起使用,但这只会影响 UI 而不会触发绑定(bind),这意味着选择框有值但没有“a.selectedPhase”

我还尝试扩展 Ember.Select View ,发现它有一个变量“value”,它存储当前值并根据绑定(bind)进行更新,但我找不到它的任何用途。我创建了观察者来观察此值何时发生变化,但这没有帮助,因为它仅在我手动选择新值时发生变化。

总而言之,除了直接更改绑定(bind)中的变量或通过 UI 之外,是否有其他方法可以通过某种方式触发 selectionBinding?

编辑:我已经按照评论中有人的要求创建了一个 jsfiddle:http://jsfiddle.net/y52Pc/2/

您可以看到绑定(bind)工作正常,如果您使用选择框选择不同的选项,它将正确更新。我还设置了两个按钮,一个使用 Ember.set 方法,这也可以正常工作并触发绑定(bind)。另一种使用 jQuery.val() 的方法只会影响 UI 而不会触发绑定(bind)。

我正在寻找的是其他一些触发绑定(bind)的方法,然后通过选择选择框设置或手动触发绑定(bind)。

编辑 2:我在此处添加了一种通过 jQuery 触发绑定(bind)的更新方式:http://jsfiddle.net/y52Pc/3/这似乎解决了问题!

最佳答案

每当您使用 $().attr() 更改选择组件的值时,它都不会触发更改事件(DOM 事件应该触发 ember.js 更新绑定(bind))。您应该手动调用 $('selector').attr().trigger('change')

关于javascript - Ember selectionbinding - 如何让它燃烧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286172/

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