【问题标题】:set selected values in amitava82/angular-multiselect在 amitava82/angular-multiselect 中设置选定的值
【发布时间】:2014-10-28 13:23:01
【问题描述】:

我是 Angular 新手,我的搜索表单中需要一个多选框, 我正在为此使用来自 amitava82 的 multiselect.js

但我遇到的一个问题是,当我想加载保存的表单时,我无法在其中获取选定的值。

这是多选框的代码

<multiselect class="input-normal" multiple="true"
ng-model="yearlist"
options="yearList.data as yearList.data for yearList in dataYearList"
change="selected()"></multiselect>

要重置它,我使用这行代码

$scope.yearlist[0].checked = false;

这很好用

这是我尝试用来设置选定值的代码 但它不起作用

$scope.yearlist=[{data:2009,checked:true},{data:2011,checked:true}];

如何使用预定义的选定值加载此表单?

【问题讨论】:

  • 请用你的代码链接一个小提琴。但一般来说,您选择的对象应该引用列表中的一项,而不是另一个具有相同键值的对象。选定的值是通过引用进行比较,而不是值
  • 好的,这里是链接plnkr.co/edit/JlJuDLddOS3K7vG6KOVX 我找到了一种选择项目的方法。但是现在我在重置多选框时遇到了问题
  • 此处描述的重置:isteven.github.io/angular-multi-select/#/… ` //重置 regionArray angular.forEach($scope.regionArray, function (region) { region.ticked = false; }); `
  • 如果您找到方法并提供适当的代码示例/提示/链接,下次最好自行回答您的问题。

标签: angularjs multi-select


【解决方案1】:

我不知道这是否也可以与 'amitava82/angular-multiselect' 结合使用,但我知道的是,如果数据处理是基于带有 ng-options 的默认多选框,你刚刚做了一个常见的错误。

默认多选的 HTML:

<select multiple ng-model="yearlist" ng-options="option.data as option.data for option in dataYearList"></select>

如果你的“dataYearList”是:

$scope.dataYearList = [{"data":2014},{"data":2013},{"data":2012},{"data":2011},{"data":2010},{"data":2009}] ;

你的年表是:

$scope.yearlist = [{"data":2012},{"data":2011}] ;

您的选择不会在多选框中被选中。 但是,如果您将“yearlist”更改为:

$scope.yearlist = [2012, 2011] ;

您的选择将被选中。

为什么? 因为 'option.data as' 指的是 option.data 值,例如不是 {"data":2012} 而是 2012。

您是否应该考虑将 'option.data as' 替换为 'option as',因为它会是例如 {"data":2012}。它不会起作用。

由于某种原因,多选无法处理 ng-model 中的对象数组,或者它无法处理 ng-options 中“option.data as”的对象以进行初始选择...为什么,我不确定。

希望这也有助于解决“amitava82/angular-multiselect”问题。

【讨论】:

    猜你喜欢
    • 2019-03-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多