标签: jqlite

AngularJS:在指令之外的按钮上侦听点击事件

我是angularjs的新手.我正在建造一个angularjs SPA.应用程序页面有两个部分 - 按钮区域和应用程序区域.应用程序区域是我的视图加载的位置.每个视图的按钮区域是相同的,因此我不将它包含在视图模板中,而是将其保留在应用程序窗口中.我的问题是,我希望我加载到应用程序区域的各种指令响应按钮区域中的点击.我如何收听源自指令之外的点击(或任何其他事件)?非常感谢!

events directive angularjs jqlite

5
推荐指数
1
解决办法
8139
查看次数

如何使用angular.element查找并迭代多个元素?

我正在写一个指令,AngularJS我需要做的一件事就是找到一个表单中的所有控件并迭代它们.

如果jQuery加载我这样做:

var inputs = element.find(".ng-invalid,.ng-valid");
inputs.each(function ()
{
    var i = $(this);               

});
Run Code Online (Sandbox Code Playgroud)

但由于它没有加载我只是Angular想我做的事情就像:

var inputs = element.find("input");
//for loop thru this
var selects = element.find("select");
//for loop thru this
//....etc
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法使用jQLite来实现这一目标?

angularjs jqlite

5
推荐指数
1
解决办法
7489
查看次数

使用clientWidth时AngularJS单元测试错误

在我的代码中有一行:

var contentWidth = angular.element(document.querySelector('.content'))[0].clientWidth;
Run Code Online (Sandbox Code Playgroud)

它在运行应用程序时工作正常但在单元测试时出现错误:

TypeError: 'undefined' is not an object (evaluating 'angular.element(document.querySelector('.content'))[0].clientWidth')
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

unit-testing jasmine angularjs jqlite karma-jasmine

5
推荐指数
1
解决办法
606
查看次数

在Mocha测试套件中的AngularJS指令上触发单击事件

我有一个带有指令的常规角度应用程序.该指令包含一个带ng-click="clickFunction()"调用的元素.单击该元素时,一切正常.我现在需要为此单击编写一个测试,确保在单击该元素时实际运行此函数 - 这就是我遇到的问题.

这是一个解释我的问题的方法:http://jsfiddle.net/miphe/v0ged3vb/

控制器包含一个clickFunction()应该在单击时调用的函数.单元测试应模仿指令元素的单击,从而触发对该函数的调用.

clickFunction与sinonjs嘲笑,这样我可以检查是否被调用,还是没有.该测试失败,意味着没有点击.

我在这做错了什么?

我已经看到类似问题的答案,比如使用Sinon测试JavaScript Click事件,但我不想使用完整的jQuery,我相信我正在嘲笑(监视)正确的功能.


这是上面小提琴的js(对于那些喜欢在这里看到它的人):

angular.js,angular-mocks.js也加载.

// App
var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function($scope) {
    $scope.person = 'Mr';
    $scope.clickFunction = function() {
        // Some important functionality
    };
});

myApp.directive('pers', function() {
    return {
        restrict: 'E',
        template: '<h2 ng-click="clickFunction()" ng-model="person">Person</h2>',
    };
});

// Test suite
describe('Pers directive', function() {
    var $scope, $controller, template = '<pers></pers>', compiled;
    beforeEach(module('myApp'));

    beforeEach(inject(function($rootScope, $controller, $compile) {
        $scope …
Run Code Online (Sandbox Code Playgroud)

javascript-events mocha.js angularjs angularjs-scope jqlite

5
推荐指数
1
解决办法
5337
查看次数

如何使用angularJS和jqlite测试event.target.hasClass()?

单击后将事件传递给ctrl.我想编写一个条件,如果element.target有类,它将返回truemodal-click-shield

题:

如何使用.hasClass()event.target利用angulars' jqlite

问题:

目前我收到类型错误说:

$scope.exitModal = function(event){
        // Return to current page when exiting the modal, via UI.
        // After state return, should set focus on the matching link.
        var target = event.target;
        console.log(target.hasClass('modal-click-shield'));
});
Run Code Online (Sandbox Code Playgroud)

错误:

 TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

HTML:

  <div class="modal-click-shield" ng-click="exitModal($event)">
     <div ui-view="pdw"  class="product-container"></div>
  </div>
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events angularjs angularjs-ng-click jqlite

5
推荐指数
2
解决办法
2万
查看次数


而不是 Angularjs 中的 $.closest

我想在指令中实现此代码,但在 jQLite 中这不起作用应该如何完成?

 var thisCell = element.closest('.sampleclass');
Run Code Online (Sandbox Code Playgroud)

jquery angularjs jqlite

5
推荐指数
1
解决办法
5058
查看次数

从Angularjs中删除jQLite(mini-jQuery)

Angularjs使用非常精简版本jQuery的jQLite(或mini-jQuery在一些网站).如果你添加对主jQuery的引用,Angularjs将使用你的主jQuery,我总是在我的应用程序中引用主jQuery.因此,为了减小Angularjs的大小,我想从Angularjs文件中删除jQLite.什么是简单(和安全)的方式来做到这一点?

javascript jquery angularjs jqlite

4
推荐指数
1
解决办法
2097
查看次数

如何使用jqlite以角度获取元素的attr数据?

如何使用jqlite以角度获取元素的attr数据?

HTML,

<button ng-click="loadForm($event)" href="form.php">Load Directive Form</button>
<div data-my-form></div>
Run Code Online (Sandbox Code Playgroud)

棱角分明,

     app.directive('myForm', function() {
        return {
          controller:function($scope){
            $scope.isLoaded = false;
            $scope.loadForm = function(e){

                console.log(e.target.attr('href')); // error 

                var form = e.target.attr('href'); // error

                $scope.isLoaded = true;
            }
          },
          template: '<div><div ng-if="isLoaded" ng-include="'+ form +'" ></div></div>',
          link:function(scope, element) {

          }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我收到这个错误,

TypeError: e.target.attr is not a function
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

angularjs jqlite angular-directive

4
推荐指数
1
解决办法
6811
查看次数

angular js 从范围 div 和 span 元素中选择所有文本,让用户复制所选文本

我正在尝试创建select all一些文本的功能(在 angular js 中),这些文本以类似于下面给出的结构的格式出现。选择所有文本后,用户可以点击ctrl + c复制相同的文本。

<div ="container">
 <div class="header">My example header</div>
  <div class="section1">
    <span>test content1</span>
    <span>test content2</span>
  </div>
  <div class="section2">
    <span>test content3</span>
    <span>test content4</span>
  </div>
  <div class="footer">footer content</div>
</div>
Run Code Online (Sandbox Code Playgroud)

会有一个按钮,通过点击它,所有出现在containerdiv内的文本都需要被选中。我搜索了很多示例,到目前为止,我找到的所有示例都提供了有关如何从 textarea 或 textbox 中选择文本的解决方案。我想知道如何从这样的 html 元素范围中选择所有文本。

html javascript css angularjs jqlite

4
推荐指数
1
解决办法
1529
查看次数

Angularjs:如何根据数据属性值查找元素?

我有以下指令:

template: '<div data-div="outer"><div data-div="inner"></div></div>',
link: function postLink(scope, elem, attrs) {
       var outer = elem.find('[data-div="outer"]');
       var inner = elem.find('[data-div="inner"]');
       outer.css({
           'background': 'red',
           'width': "100%",
           'height': "100%",
       });
       inner.css({
           'background': 'blue',
           'width': "50%",
           'height': "100%",
       });
    }
Run Code Online (Sandbox Code Playgroud)

根据这篇文章,我尝试了这些选择器.但我使用的是jQLite,而不是JQuery.

那么,如何根据数据属性值查找元素?

http://plnkr.co/edit/FeJWvwnKjOZwAIABigtA?p=preview

javascript angularjs angularjs-directive jqlite

2
推荐指数
1
解决办法
1万
查看次数

如何在Angualar的jqLit​​e元素对象中按id查找元素

我正在使用这个:

$vehicleTypeDropdown = element.find(".vehicleTypeDropdown");

然后在以后的时间点我想找到#pselectID元素.我$vehicleTypeDropdown看起来像这是jqLit​​e对象: -

<select class="vehicleTypeDropdown" id="vehicleType">
<option id="#pselect" value="">Please Select</option>
<option ng-repeat="types in selectedType" value="Vt3" class="ng-scope ng-binding">vt3</option>
<option ng-repeat="types in selectedType" value="Vt4" class="ng-scope ng-binding">vt4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

有两个问题 -

  1. 它是在jqLit​​e文档中编写的,该.find()方法只查找标记,而不是类或id.那我怎么得到

    $vehicleTypeDropdown = element.find(".vehicleTypeDropdown");

    作为jqLite内容的对象?

  2. 我怎样才能找到该选项#pselect?我想手动删除它,请记住它可以在选项中以任何顺序.

javascript angularjs jqlite

2
推荐指数
1
解决办法
5776
查看次数

Bootstrap $ uibModal焦点到元素

我创建了一个AngularJs指令,该指令将焦点设置为html元素。但是它不适用于$ uibModal元素:

angular.module('ui.bootstrap.demo')
    .directive('focus', ['$timeout', function ($timeout) {
        return {
            restrict: 'A',
            link: function postLink(scope, element, attrs) {
                scope.$watch(attrs.focus, function(value) {
                    if(value === true) {
                        $timeout(function() {
                            element[0].focus();
                        });
                    }
                });
            }
        };
    }]);
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/BrnFt1kYZN7VsIFRCt3S?p=preview

如何将焦点设置到$ uibModal中的元素?

javascript angularjs angular-ui-bootstrap bootstrap-modal jqlite

0
推荐指数
1
解决办法
2462
查看次数