当前位置: 首页 > 面试题库 >

AngularJS选择多个选项

郎长卿
2023-03-14
问题内容

所以,我想用香草JS做的事情很简单,但是我使用的是AngularJS,我想知道如何在框架内以最佳方式做到这一点。我想在多个选择框中更新所选的选项。我不想添加或删除任何选项。这是我的HTML外观:

<select multiple>
    <option value="1">Blue</option>
    <option value="2">Green</option>
    <option value="3">Yellow</option>
    <option value="4">Red</option>
</select>

使用以下数组,我想以编程方式从此列表中选择/取消选择选项:

[{id:1, name:"Blue"},{id:4, name:"Red"}]

当我在范围中设置此数组时,我希望选择框取消选择不是蓝色或红色的任何内容,然后选择蓝色和红色。我在Google网上论坛上看到的标准回复是使用ng-
repeat。但是,我不能每次都重新创建列表,因为所选值的列表不完整。据我所知,AngularJS对此没有任何机制,而我在不依靠jQuery的情况下如何做到这一点一无所知。


问题答案:

ngModel非常棒!如果您将索引指定为模型selectedValues

<select multiple ng-model="selectedValues">

根据您的列表(selected)构建$watch

$scope.$watch('selected', function(nowSelected){
    // reset to nothing, could use `splice` to preserve non-angular references
    $scope.selectedValues = [];

    if( ! nowSelected ){
        // sometimes selected is null or undefined
        return;
    }

    // here's the magic
    angular.forEach(nowSelected, function(val){
        $scope.selectedValues.push( val.id.toString() );
    });
});

ngModel会自动为您选择它们​​。

请注意,此数据绑定是单向的(selected到UI)。如果您想使用<select>UI来构建列表,建议您重构数据(或使用其他数据,$watch但是这些数据可能很昂贵)。

是的,selectedValues需要包含字符串,而不是数字。(至少对我有用:)

有关完整示例,请访问http://jsfiddle.net/JB3Un/



 类似资料:
  • 问题内容: 尝试在angularjs中选择关于对象值的多个选项 这是一个代码: 和html jsfiddle上的(非)工作示例 http://jsfiddle.net/andrejkaurin/h9fgK/ 问题答案: 您尝试使用选择倍数(如复选框列表),这有点奇怪。多选输出一个数组。您不能将ng- model放在这样的选项标签上,而是放在选择本身上。因此,由于select将输出值数组,因此您需要

  • 问题内容: 这里完全没有想法,可能需要一个简单的解决方案。 基本上我想要的查询是: 我只想选择ID为3和4的行,或者命名为“ andy”和“ paul” 非常感谢您的回答 问题答案: 尝试: 或等效的:

  • 问题内容: 我有一些使用jQuery进行动画效果的自定义指令(Angular内置的ngShow / ngHide等功能有效,但并不美观)。我想我记得在文档中某个地方读到angular有它自己的DOM选择器(类似or ),我应该使用它而不是; 但是我现在找不到。 我正在做这样的事情: 我并不是真正在操纵它,只是获取有关它的信息,所以我认为我没有对Angular犯下罪行。 问题答案: “jqLit​​

  • 我有一个可以包含多个可选ID的类,该类将选择第一个可用ID并将其返回给调用方。像下面这样。 我想使用像map和orElse这样的可选方法,但在这种情况下,它会导致太多的嵌套。另外两个伪代码选项可能是。 有没有比我现有的方法更好的方法?我很想通过做香草isPresent()检查来避免嵌套。

  • 问题内容: 我想选择,,从多个选择其中有10个选项。我只想选择这三个选项。 HTML代码: selenium键代码: 我尝试使用此代码。使用此代码,我可以选择第一个选项,即“ P0_ENGLISH”。但是,选择第一个选项后,我得到一个错误: 问题答案: 要从 Multi Select 元素中选择多个 选项 ,可以使用 ActionChains 模拟 Control单击* ,如下所示: *

  • 在过去的几周里,我一直在与AngularJS合作,有一件事确实让我感到困扰,那就是即使在尝试了所有的排列或规范中定义的配置之后http://docs.angularjs.org/api/ng.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。 这是翡翠: 这里的控制器: 最后,这里是生成的HTML: 我需要怎么做才能摆脱它? 注意:没有这个东西也可以工作,但