小编Bri*_*usk的帖子

如何处理AngularJS中禁用的JavaScript

AngularJS依赖于启用JavaScript.这意味着如果有人访问AngularJS中构建的应用程序或网站,则无法正确呈现.

使用AngularJS时,用于处理禁用JavaScript的访问者的常用约定是什么?

请解释为什么会这样?

问题包括处理角度JS指令和{{data_bindings}}的情况.这样当页面无法呈现页面时数据就不会显示.

javascript browser accessibility web-applications angularjs

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

使用Jasmine和Karma很难在AngularJS中进行测试驱动开发

我在使用Jasmine测试框架开始使用AngularJS中的测试驱动开发时遇到了困难.我有很多使用PHPUnit的经验,并且非常熟悉它.虽然我没有发现使用Jasmine在AngularJS中进行测试驱动开发的同样容易.

我已阅读文章和教程,观看视频,查看StackOverflow问题.我仍然难以获得适当的文字流程或进入思考过程.

在AngularJS中进行测试驱动开发时,人们会想到什么样的思维过程?

或者换句话说,在AngularJS中接近测试驱动开发时可以使用什么过程?

具体来说,这个过程中有哪些步骤?我是从控制器,视图还是模型开始的?

在我完成这个过程时,我会经历哪些代码组件?

我正在寻找一个可重复的思维过程,用于在各种领域构建可靠的单元测试应用程序.如果您有特定资源,请列出.

tdd unit-testing testing-strategies jasmine angularjs

9
推荐指数
1
解决办法
2987
查看次数

单元测试AngularJS指令

我如何对我的指令进行单元测试?

我拥有的是什么

angular.module('MyModule').
    directive('range', function() {
        return {
            restrict: 'E',
            replace: true,
            scope: {
                bindLow: '=',
                bindHigh: '=',
                min: '@',
                max: '@'
            },
        template: '<div><select ng-options="n for n in [min, max] | range" ng-model="bindLow"></select><select ng-options="n for n in [min, max] | range" ng-model="bindHigh"></select></div>'
    };
})
Run Code Online (Sandbox Code Playgroud)

在我的单元测试中,我想从一个非常简单的测试开始

describe('Range control', function () {
    var elm, scope;

    beforeEach(inject(function(_$compile_, _$rootScope) {
        elm = angular.element('<range min="1" max="20" bind-low="low" bind-high="high"></range>');

        var scope = _$rootScope_;
        scope.low = 1;
        scope.high = 20;
        _$compile_(elm)(scope);
        scope.$digest();
    }));

    it('should render two …
Run Code Online (Sandbox Code Playgroud)

unit-testing angularjs angularjs-directive

6
推荐指数
1
解决办法
5053
查看次数

keypress 和 keydown 优先于 Firefox 和 Safari 中的粘贴事件

我有一个使用 jqlite 的 Angular 指令,我想绑定一个按键、按键和粘贴事件来更新指令上的选项。

我使用以下方法绑定到 paste、keypress 和 keydown 事件:

input.bind("paste.elementClass", updateOptions);
input.bind("keypress.elementClass", updateOptions);
// keypress does not fire if the backspace/delete button is pressed. This keydown listener triggers the
// keypress event if backspace/delete is pressed. Didn't use keydown listener instead of keypress because
// keydown did not register if multiple buttons are pressed (shift + d). The keyup event choked
// if a button was pressed and held for longer than the model debounce time.
input.bind("keydown.elementClass", function() { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery angularjs

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