问题标签 [jqlite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
606 浏览

javascript - Angular JS - 将 jquery 插件添加到 jQlite

我需要在 $element 上做一些 dom 遍历,但是 jQuery 或 jQlite 并没有做我需要的开箱即用的事情,所以我需要使用一个名为 closeChild 的 jQuery 插件。

https://github.com/lolmaus/jquery.closestchild/blob/master/jquery.closestchild.js

我已经使用 bower 安装了,我试图在脚本标签中的 angular.min.js 之后加载它,但仍然出现以下错误。

所以,我假设 Angular 附带的 jQlite 默认情况下不会给你 $ 使用?还是我只是按错误的顺序做事?

0 投票
1 回答
878 浏览

javascript - 角指令链接功能

我是 Angular 的新手。我试图学习指令。在我的指令link函数中,我记录了我的元素并看到它是一个数组。为什么它是一个数组?

JS:

在这种情况下,这个数组的长度可以大于 1!!

0 投票
3 回答
184 浏览

angularjs - 如果立即反弹,事件处理程序不会解除绑定

我有一个简单的指令,它呈现一个按钮。

该指令的链接函数执行以下操作:

  1. 绑定“mouseenter”和“mouseleave”事件。
  2. 取消绑定 'mouseenter' 和 'mouseleave' 事件。
  3. 再次绑定 'mouseenter' 和 'mouseleave' 事件。

事件的处理程序将简单的消息记录到控制台。我希望在 mouseenter 或 mouseleave 上调用一次处理程序。但是,它们会执行两次,就好像步骤 2 从未发生过一样。

该指令的代码:

以下 plunker 说明了这个问题:

http://plnkr.co/ocXYYZ2jv09Ch7GDRaat

有人知道它为什么会这样吗?

更新:如果你包含 jQuery 而不是依赖 JQLite,它就可以工作。唉,这不是我的选择。

0 投票
1 回答
867 浏览

javascript - Angular JS 和 jqLit​​e 将节点匹配到选择器

我正在尝试将 jQuery 中的一些函数添加到 jqLit​​e 中,这样我就不必使用我的 Angular 应用程序加载整个 jQuery 库。我在本文中使用了 Ben Nadel 使用的技术。

http://www.bennadel.com/blog/2753-creating-jqlite-plugins-in-angularjs.htm

我在实现一个像这样的closestChild插件时遇到了困难。

https://github.com/lolmaus/jquery.closestchild/blob/master/jquery.closestchild.js

显然我已经重写了一点,所以它看起来像这样。

...但它会导致这个错误。

所以,我对错误进行了搜索,发现 jqLit​​e 由于某种原因无法与选择器匹配,只能匹配标签名称(这有用吗?)。我无法理解的是,它与该文章中 Ben 的 .filter() 函数一起运行,当你给它一个选择器时,它似乎工作正常。这与我在这一行中调用的函数完全相同。

所以,我想我的问题是,有没有一种方法可以遍历 $children 并查看它们中的任何一个是否与使用纯 javascript 或其他解决方法传入的选择器匹配?

0 投票
1 回答
463 浏览

jquery - 为什么 jqLit​​e 不在我的代码中第一次关注?

我有一个指令来自动聚焦下一个输入,如下所示。该项目是 Ionic 的 angularJs。它适用于另一个项目(基于phonegap - 不是离子),但在这个离子项目中它不是在玩球。标记是相同的。

html 看起来有点像下面:

奇怪的是,在调试中我可以看到执行“elem.nextAll('input').first().focus();”行的代码

这确实会按下本机键盘,但不会关注下一个输入。奇怪的是,当我“制表”到下一个输入时,该指令起作用,我可以回到第一个输入,它会按预期自动制表。

在绑定指令方面,我可以调试并看到它正在触发,所以它不能成为与此相关的问题。HTML 是静态的,因此不存在事件委托问题。

我对此感到困惑,我一直回到的唯一一件事是,最初的 .focus() 似乎并没有真正集中注意力,而且每隔一段时间它就会集中注意力。

我尝试将它包装在 $timeout 和 $scope.$apply() 中,但似乎不起作用。

有没有人知道我可以尝试的东西?


编辑


奇怪的是,当我的 Chrome 开发工具未打开时,它按预期工作。它也不适用于设备。除了可能较慢的执行周期之外,我看不出这里有什么区别?

0 投票
2 回答
983 浏览

javascript - Angularjs 在创建 dom 元素方面的性能,纯 js 与 jqlite

我在 Angularjs 中有一个指令,它将有一个包含很多行(超过 1000 行)的表,所以我的老板说我不应该使用绑定来制作网格内容(因为 Angular 的绑定限制约为 2000),而是我应该动态创建 dom 元素。

我这样做了angular.element(...),它有效。但是现在我在想如果我使用本机 js 是否可以提高性能document.createElement

那么jqlite比纯js慢吗?制作超过 1000 行的 html 会产生多大的影响?

jquery 更快吗?更慢或等于 jqlite?

更新 :

@Joe Enzminger +1 一次绑定,这对报告/打印视图很有用,女巫只是为了查看。但是网格具有内联编辑,因此它需要双向绑定。它有 19 列,每列有一个输入和 2 个按钮,最后一列有一个保存按钮。每个按钮都有ng-show并且保存按钮必须ng-class根据行状态更改其图标。所以 (19*3)+1 双向绑定。

这个网格是一些 kine 的数据输入形式 :D 并且所有行都应该是可见的并且不能有分页。

更新2:

我忘了提到,现在tbody我的模板中有一个空元素,它的所有内容都是作为一个简单的 dom 生成的,并注入其中,绝对没有任何类型的数据绑定。所有的交互都是用好的所有时尚 JS 手动处理的:D。

0 投票
1 回答
219 浏览

angularjs - 缺少图像的AngularJS错误

所以我写了一个简单的指令,它拦截图像的 404 并在第一个图像加载失败时回退到另一个图像。

效果很好,但我遇到了一些返回 404 状态代码但仍返回正文中的图像(例如 Google+)的 URL 的问题。

如果你想看看代码示例在这里https://jsfiddle.net/4cjb5srh/1/

在此示例中,Google+ 图片不会触发错误,但linkedin 图片会触发。我尝试使用 jquery .error() 而不是 jqlite bind('error') 但没有解决问题。

编辑:JimTheDev 指出,如果 ngSrc 路径解析为 404,这可能是同一个问题,有没有办法回退到默认值?. 我的问题和其他问题都将退回到 404,但是这个问题特定于返回 404但未触发错误的情况(当响应类型由 kwan245 如下所述指定时)。

0 投票
1 回答
6314 浏览

javascript - 如何在 Angular 中将 ng-attr-id 转换为 id

我在下面的链接中使用 Angular JS 中的拖放库,它工作得很好,因为它在 div 中没有 id。

https://jasonturim.wordpress.com/2013/09/01/angularjs-drag-and-drop/

我正在使用 HTML 5 拖放功能,但我面临的问题是通过 Angular J S 生成每个动态 id。我已经尝试ng-attr-id了两者,但我无法id通过angular.element(element l).a t tr("id").

0 投票
1 回答
674 浏览

javascript - 如何使用角度改变体型

我有以下代码和一堆其他角度代码:-

在我的角度控制器中

它获取 bodytemp 但不删除类。从 chrome 调试器:-

ETC....

不知道是什么原因?

PS:-我的角度范围是在主体内的 div 内定义的,我无法更改它,所以我的代码如下:-

引导代码:-

0 投票
2 回答
1056 浏览

javascript - AngularJS:为什么在使用 ng-options 时 $element.find('option') 返回一个空数组?

在 Angular 1.4 中,我使用该指令使用基于如下对象的标签ngOptions填充标签:<select><option>

这很好用ng-options="value as key for (key, value) in vm.colors",但现在我想为每个匹配键的选项标签添加一个类(例如'.black','.red')。我的想法是简单地找到option元素并使用addClass(),但我在获取这些元素时遇到了麻烦。(注意:我没有使用 jQuery,并且希望避免为此添加它。)

这是一个jsfiddle。

我希望能够将结果绑定$element.find('option')到我的视图模型,然后使用 观看它$scope.$watch('vm.options', function() {...}),但是当我登录vm.options到控制台时,我看到的只是一个空数组。

我在这里使用$scope.$watch不正确吗?有问题$element吗?ngOptions我的控制器无法访问范围内的元素吗?还是我只是犯了一个愚蠢的错误?

任何帮助将不胜感激......在此先感谢!