AngularJS - 为什么选择下拉菜单没有 $event 变化

2024-03-17

我是 AngularJS 的新手。我有一个问题,为什么ng-change$事件没有通过?

HTML

<div ng-controller="foo">
    <select ng-model="item" ng-options="opts as opts.name for opts in sels" ng-change="lstViewChange($event)" ng-click="listViewClick($event)"></select>
</div>

Script

var myApp = angular.module('myApp', []);
angular.element(document).ready(function() {
   angular.bootstrap(document, ['myApp']);
});

function foo($scope) {
    $scope.sels = [{id: 1, name: 'a'}, {id: 2, name: 'b'}];

    $scope.lstViewChange = function($event){
        console.log('change', $event); //undefined
    }

    $scope.listViewClick = function($event){
        console.log('click', $event); //object
    }
}

看看这个小提琴http://jsfiddle.net/QfZZH/ http://jsfiddle.net/QfZZH/. Click传递一个有效的 $event 但是change没有。有人可以解释这种行为吗?


只是为了说明显而易见的事情,文档说ngClick将通过该事件,但是ngChange没有这样的文档。

那么,您要问的是为什么 Angular 的设计者选择这样做?我的想法是ngClick由于单击而触发,因此有一个与指令触发相关的鼠标事件是有意义的。ngChange另一方面是改变模型的任何用户操作的结果,它可能与各种事件而不是一个特定事件相关联。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS - 为什么选择下拉菜单没有 $event 变化 的相关文章

随机推荐

  • @xmlschema jaxb package-info.java 编译错误

    我尝试在包级别使用注释 但从 Eclipse 中收到编译错误 我有课Head具有以下包 注释 javax xml bind annotation XmlSchema xmlns javax xml bind annotation XmlNs
  • Facebook 页面的 webhook [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我在一页上拥有管理员访问权限 我创建了 facebook 应用程序 并在我的网站上创建并验证了 webhook 问题是我
  • Html.ListBoxFor错误问题asp.mvc 3

    我的代码中有类似的内容 但收到错误 异常详细信息 System ArgumentException 值不能为 null 或空 参数名称 名称 我究竟做错了什么 感谢帮助 model IEnumerable
  • 表单外的复选框

    由于设计要求 我需要在表单外部放置几个复选框 是否仍然可以将这些值包含在表单的提交操作中 也许用javascript或其他我没有想到的方式 如果您使用 HTML5 则有一个form属性 请参见以下示例 p p
  • 如何使用 web3.js 1.0 进行身份验证和发送合约方法

    我对如何使用 web3 1 0 库执行合约的方法感到困惑 此代码有效 只要我先手动解锁帐户 var contract new web3 eth Contract contractJson contractAddress contract m
  • 使用回车符迭代文件

    有没有办法使用语法迭代文本文件 with open filename r as f for line in f print f 如果文件仅包含回车符而没有换行符 到目前为止我能做的就是 with open filename r as f f
  • 我所有的 javascript 在底部添加了一些代码

    我的网站使用 CodeIgniter 今天我发现我的网站在所有 JavaScript 文件 包括 jQuery 文件 的底部添加了一些代码 代码是这样的 4fd970 You are blocked by day limit 4fd970
  • 无法签入 TFS 的更改

    我在尝试签入对 Visual Studio Online 上托管的 TFS 的更改时遇到问题 上周才开始 我在跑步Visual Studio Professional 2017版本15 5 2 当我尝试签入更改时 出现以下错误 C My W
  • 将属性绑定到列表视图数据模板内的元素

    我无法让数据绑定在DataTemplate以 Xamarin 形式 我可以让它与ListView 即绑定RowHeight 但一旦进入DataTemplate 将内容设置为我的 ViewModel 的属性没有任何影响 在下面的示例中 如果我
  • Sqlite计算查询中YYYYMMDD日期格式之间的天数差异

    我已经以 YYYYMMDD 格式存储了一些患者记录的治疗日期 tdate 和接收日期 rdate 我想查询rdate tdate结果小于30的记录 我的尝试是 SELECT FROM table WHERE rdate tdate lt 3
  • Matlab:获取图中点击的坐标但保留按钮回调

    我需要一个函数 它可以为我提供在图形窗口中单击的坐标以及单击的鼠标按钮 左 中 右或按下 KEY 的坐标 但我仍然想使用 uicontrol 按钮 我目前正在使用 ginput 它工作正常 但按钮回调函数没有执行 因此我认为 ginput
  • 将日期字符串转换为 Unix 时间戳

    我的日期是 Mon Mar 15 20 51 18 0000 2010 如何将此日期转换为 Unix 时间戳 require time Time parse Mon Mar 15 20 51 18 0000 2010 to i
  • 从 intellij 检查中排除目录,但不从自动完成中排除

    据我所知 排除目录的唯一方法是将其标记为在项目结构中排除 然而 这将使 IntelliJ 完全忽略该目录 因此它不会出现在自动完成选项中 我不想要这个 我希望排除在检查之外 但包含在其他一切中 这可能吗 我正在使用 Intellij 12
  • MySQL InnoDB - 对事务感到困惑

    我已经使用MySQL很多年了 但是没有太多使用InnoDB引擎的经验 我现在正在对它运行一些测试 因为我将要使用它 并且从我读到的内容来看 如果该事务中的任何查询存在任何问题 它不应该允许任何内容 通过 我的问题是 为什么在下面的代码中 当
  • java zoneinfo 有什么问题?

    我的 Mageia 4 中有欧洲 莫斯科时区 代码是这样的 System out println new java util Date System out println System getProperty user timezone
  • 系统日期格式不使用django语言环境

    尝试了解 Django 中的 L10N 实现 这是我的设置 LANGUAGE CODE fr FR USE L10N True If I try gt gt gt datetime datetime strptime 2012 05 30
  • 通过 API 使用回形针保存文件

    我使用回形针来管理上传 通过 Fog 支持到 S3 效果很好 我正在尝试从电子邮件中取出附件并通过回形针保存它们 使用相同的模型等 电子邮件由外部服务解析并发布到我的应用程序 包括附件 我收到的文件本身很好 但我不知道如何使用回形针保存它
  • 高级错误处理:系统地尝试一系列处理程序

    另一个后续行动this https stackoverflow com questions 15295004 disregarding simple warnings errors in trycatch noredirect 1 comm
  • 通过 Google Apps 帐户发送电子邮件可以在本地运行,但不能在我的网络服务器上运行

    Related 通过 Google Apps 帐户通过 C 发送电子邮件 https stackoverflow com questions 757987 send email via c through google apps accou
  • AngularJS - 为什么选择下拉菜单没有 $event 变化

    我是 AngularJS 的新手 我有一个问题 为什么ng change 事件没有通过 HTML div div