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

当选定的ng-option更改时获取价值

颛孙航
2023-03-14
问题内容

我在.html页面中有一个下拉列表,

落下:

<select ng-model="blisterPackTemplateSelected" data-ng-options="blisterPackTemplate as blisterPackTemplate.name for blisterPackTemplate in blisterPackTemplates">
    <option value="">Select Account</option>
</select>

当用户选择一个值时,我想执行一个动作。因此,在我的控制器中,我做到了:

控制器:

$scope.$watch('blisterPackTemplateSelected', function() {
    alert('changed');
    console.log($scope.blisterPackTemplateSelected);
});

但是更改下拉列表中的值不会触发代码: $scope.$watch('blisterPackTemplateSelected', function()

结果,我ng_change = 'changedValue()'在select标记上尝试了另一个带有:的方法

功能:

$scope.changedValue = function() {
   console.log($scope.blisterPackTemplateSelected);
}

但是blisterPackTemplateSelected会存储到子作用域中。我读到父级无法访问子级作用域。

当下拉列表中的选定值更改时,执行某项操作的正确/最佳方法是什么?如果是方法1,我的代码在做什么错?


问题答案:

如Artyom所说,您需要使用ngChange并将ngModel对象作为参数传递给ngChange函数

范例

<div ng-app="App" >
  <div ng-controller="ctrl">
    <select ng-model="blisterPackTemplateSelected" ng-change="changedValue(blisterPackTemplateSelected)" 
            data-ng-options="blisterPackTemplate as blisterPackTemplate.name for blisterPackTemplate in blisterPackTemplates">
      <option value="">Select Account</option>
    </select>
    {{itemList}}     
  </div>       
</div>

js:

function ctrl($scope) {
  $scope.itemList = [];
  $scope.blisterPackTemplates = [{id:1,name:"a"},{id:2,name:"b"},{id:3,name:"c"}];

  $scope.changedValue = function(item) {
    $scope.itemList.push(item.name);
  }       
}

实时示例:http://jsfiddle.net/choroshin/9w5XT/4/



 类似资料:
  • 我试图在点击组合框时获取当前行数据。我的问题是,如果我试图在单击组合框时获取详细信息,则检索到的数据是错误的。 这是在集合中填充无效数据。请按照下面提到的确切步骤进行复制。 请运行代码以复制该问题,因为它只在初始选择期间工作,而不是之后。 注意:请仅在第二列中单击“直接” 下面是示例代码:

  • 问题内容: 我有一段代码,其中一个包含三个s 。我想设置的,将显示的值的。但是,到目前为止我没有得到任何结果。如何获得的值并在中显示Toast?预先谢谢你,这是我的代码: XML档案: 问题答案: 经过测试和工作。检查一下 XML文件

  • 问题内容: 我尝试使用输入获得当前选择的文本,但我总是得到一个空字符串: 结果成: 使用angularjs.org作为目标站点的完整可重复测试: 请注意,我实际上看到输入的文本是用COMMAND +“ a”选择的。 我究竟做错了什么? 使用量角器2.5.1,Firefox 41。 问题答案: 不适用于在元素中选择的文本,但不适用于在页面中对元素进行的选择。 您可以使用和这样的: 您可能应该为此创建

  • 问题内容: 我需要帮助或想法如何编写它,一个mysql语句。当特定列的值更改时,我需要选择一行。此后具有相同值的行不应选择。例如,我们有一个像这样的表,用以下值填充: 如果我想在status_1更改时选择行,则查询应选择ID为1和5的行,如果我正在使用status_2的ID为:1、3、5、7的行,并且如果我使用status_3的所有ID,则为ID 。希望有人可以在过去的所有时间里为我提供帮助。 提

  • 问题内容: 我要实现的事情是,无论何时更改下拉列表,我都希望更改之前的下拉列表的值。我正在使用1.3.2版的jQu​​ery并使用on change事件,但是更改后得到的值是。 可以说,当我在onchange事件中将其更改为堆栈时(即,当我将其更改为堆栈时),现在选择了My选项,我希望它是先前的值,即本例中的期望值。 如何做到这一点? 编辑: 就我而言,我在同一页面中有多个选择框,并希望将相同的内

  • 问题内容: 给定以下选择元素 有没有办法使MAGIC_THING等于当前选择的大小,因此我可以访问并在我的控制器中? size.code影响了应用程序的许多其他部分(图像网址等),但是当的ng-model 更新时,面向用户的东西也需要更新。我认为执行此操作的正确方法是捕获更改事件并在控制器内部设置值,但是我不确定可以将哪些内容传递给update以获取正确的值。 如果这是完全错误的解决方法,我很想知