AngularJS 1.2.0-rc.2 与 1.2.0 元素绑定

2024-03-12

我最近将 AngularJS 框架从 1.2.0-rc.2 升级到 1.2.0 版本,并遇到了一个奇怪的问题,我还没有找到解决方法。我之前解决的问题是强制输入字段在 on-blur 事件而不是 on-change 事件上触发。我最初使用的指令的代码是:

angular.module('app', []).directive('ngModelOnblur', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function(scope, elm, attr, ngModelCtrl) {
            if (attr.type === 'radio' || attr.type === 'checkbox') return;

            elm.unbind('input').unbind('keydown').unbind('change');
            elm.bind('blur', function() {
                scope.$apply(function() {
                    ngModelCtrl.$setViewValue(elm.val());
                });         
            });
        }
    };
});

这只是使用这里找到的建议https://groups.google.com/forum/?fromgroups#!searchin/angular/change$20blur/angular/LH0Q1A-qTVo/eyVIjJsFZGcJ

我创建了两个 jsFiddles,一个使用 AngularJS 1.2.0-rc.2here http://jsfiddle.net/Aaronias/dw9Xy/,另一个使用 AngularJS 1.2.0here http://jsfiddle.net/Aaronias/taZN7/.

The ngModleOnBlur指令应删除'change'绑定来自<input>元素并添加显式'blur'捆绑。

您会注意到小提琴的行为有所不同,例如绑定elm.bind('blur', function(){...})实际上并没有正确绑定到元素,而且看起来elm.unbind('input').unbind('keydown').unbind('change')在 1.2.0 中不起作用。

我知道新的ng-blur指令,但就我而言,我不能直接使用它,而是需要手动覆盖绑定到元素的事件。如果有人可以发布一个如何手动覆盖绑定到元素的事件的工作 jsfiddle,和/或解释为什么它从 1.2.0-rc.2 更改为 1.2.0,那将非常有帮助。


它与评估指令的顺序有关。

输入指令监听 DOM 元素事件,实际上是在指令之后执行的。只需添加

priority: 1

根据您的指令定义。输入指令的默认优先级为 0。

这是更新的小提琴

http://jsfiddle.net/yC627/ http://jsfiddle.net/yC627/

但奇怪的是,文档明确指出

Directives with greater numerical priority are compiled first.

但玩弄它,似乎恰恰相反。我无法告诉你为什么会这样。希望其他人可以插话。

编辑:我查看了更改日志,它似乎来自此更改

https://github.com/angular/angular.js/blob/master/CHANGELOG.md#writing-changes-1 https://github.com/angular/angular.js/blob/master/CHANGELOG.md#breaking-changes-1

文档确实应该更新以反映这一点。与预链接或编译函数相比,后链接函数以相反的优先级顺序解析。

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

AngularJS 1.2.0-rc.2 与 1.2.0 元素绑定 的相关文章

  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 有没有办法将变量从 javascript 导入到 sass 或反之亦然?

    我正在制作一个依赖于块概念的 CSS 网格系统 所以我有一个基本文件 例如 max columns 4 block width 220px block height 150px block margin 10px 它被 mixin 使用 m
  • 如何调用 google 的 getBasicProfile() 来仅单击按钮即可登录 google?

    我在我的网站上使用谷歌登录
  • console.log() 显示同一对象属性的矛盾值

    我想我可能要疯了 我使用 console log 来查看对象的状态 然后在下一行对同一对象的特定属性执行 console log 并为每个属性获取不同的值 我正在使用的代码是 console log this pictures Items
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • 为什么 Web Worker 性能在 30 秒后急剧下降?

    我正在尝试提高在网络工作人员中执行时脚本的性能 它旨在解析浏览器中的大型文本文件而不会崩溃 一切都运行得很好 但我注意到使用网络工作者时大文件的性能存在严重差异 于是我做了一个简单的实验 我在同一输入上运行脚本两次 第一次运行在页面的主线程
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 在 angularjs 应用程序中更改页面的位置哈希,无需重新加载页面

    我需要能够更改页面的位置哈希 例如从 到 page1 以便 angularjs 不会重新加载页面 有可能吗 在路由定义中添加此参数reloadOnSearch false 禁止在查询参数更改时重新加载基于 ui router 的视图 htt
  • Google 地图 API:忽略 DirectionService 请求中的季节性限制

    我目前正在开发一张地图 其中显示两点之间的最短路线 使用不同的交通工具 我注意到 有时 例如在冬季关闭的道路不会被考虑在内 我发现我可以使用方向服务 下面的代码 忽略高速公路 收费站和渡轮 但我一生都无法弄清楚如何 是否可以忽略季节性限制
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • JavaScript 数组扩展语法的时间复杂度是多少?

    我想知道在 JavaScript 中使用数组扩展的时间复杂度是多少 是线性 O n 还是常数 O 1 下面的语法示例 let lar Math max nums 传播称为 Symbol iterator 有关对象的属性 对于数组 这将迭代数
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • JavaScript:测试与执行

    我想知道检查字符串 例如邮件 密码等 的最佳方法是什么 i exec a vs i test a exec返回值 test true test 1 way var mail req body mail if check mail exec
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定

随机推荐