【问题标题】:Select2 not bindingSelect2 不绑定
【发布时间】:2017-10-16 13:55:41
【问题描述】:

我正在尝试将 Select2 与我的 Angular 应用程序一起使用,但我在绑定时遇到了问题。有一个带有 Id 数组的模型,我绑定到该模型。使用默认(不带 Select2)时,它可以正常工作,但是一旦我使用 select2,我就会失去绑定。

我添加了前部分来显示cultureIds。如您所见,它不会更新。当您不调用 .select2() 函数时,它会正确绑定。

我也尝试在选项标签中执行 ng-repeat,但结果相同。

在导致问题的 HTML 下方:

<select class="Select2"
        ng-model="region.cultureIds"
        multiple="multiple"
        ng-options="culture.id as culture.displayName for culture in cultures">
</select>
<pre>{{region.cultureIds | json}}</pre>

我已经包含了一个 jsFiddle 来演示我的问题。 http://jsfiddle.net/gymagmor/

【问题讨论】:

  • 您会只发布显示您的问题所需的最少代码量吗?
  • 完成.. 虽然这已经是我认为所需的最少代码量.. 我已经删除了周围的标签。
  • 这个小提琴是否也显示缺乏绑定? jsfiddle.net/gymagmor
  • 是的。 id 的相关数组位于选择项下。它们正确地预先选择,但是当您更改多选的值时,它不会更新。
  • 看来需要绑定“select2:selecting”事件,处理数据,然后触发摘要。

标签: angularjs jquery-select2


【解决方案1】:

对不起,我不会回答这个问题,但我建议不要使用 jquery select2 并使用原生 Angular 版本。

原因是你正在编写 AngularJS 应用程序,你应该尝试使用 angularjs 方式,而不是 JQuery 方式 - 所以更少的 DOM 操作。

检查一下,angularjs 的最佳 ui-select,我已经在多个项目中使用它,它很棒:

https://github.com/angular-ui/ui-select

通过这种方式,您可以将所有内容保留在控制器和/或范围内,并且无需任何 DOM 操作,您就可以使用 select 中的值 - 它也支持多选。

当我们在推荐东西的时候,看看这个,它是 Todd Motto AngularJS 风格指南,事实上最好的在线 AngularJS 指南(而且它会让你为 Angular 做好一些准备):

https://github.com/toddmotto/angularjs-styleguide

【讨论】:

  • 也许将您的链接更新为github.com/angular-ui/ui-select,因为另一个已弃用。
  • 谢谢。我会看看这个。如果它符合我的需要,我会切换到这个。
【解决方案2】:

按照 buh-buh 的建议,我能够通过绑定到“select2:selecting”事件、处理数据,然后触发摘要来解决此问题。

【讨论】:

    猜你喜欢
    • 2015-02-03
    • 2014-02-03
    • 2020-03-26
    • 1970-01-01
    • 2023-04-09
    • 2016-10-26
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多