小编Ken*_*nne的帖子

在AngularJS中有条件地应用属性的最佳方法是什么?

我需要能够根据范围内的布尔变量向元素添加"contenteditable".

使用示例:

<h1 attrs="{'contenteditable=\"true\"': editMode}">{{content.title}}</h1>
Run Code Online (Sandbox Code Playgroud)

如果$scope.editMode设置为,则会导致将contenteditable = true添加到元素中true.有没有一些简单的方法来实现这样的ng-class属性行为?我正在考虑写一个指令并分享,如果没有.

编辑: 我可以看到我提出的attrs指令和ng-bind-attrs之间似乎有一些相似之处,但它在1.0.0.rc3中删除了,为什么会这样呢?

angularjs angularjs-directive

288
推荐指数
9
解决办法
27万
查看次数

如何在android上启用live native in react native?

如何在Android模拟器中启用实时重新加载?

android 的文档对于android noob来说并不是很有帮助.

android react-native

109
推荐指数
6
解决办法
8万
查看次数

_servicename_中的下划线在AngularJS测试中意味着什么?

在下面的示例测试中,原始提供者名称是APIEndpointProvider,但是对于注入和服务实例化,约定似乎必须注入包含它的下划线.这是为什么?

'use strict';

describe('Provider: APIEndpointProvider', function () {

  beforeEach(module('myApp.providers'));

  var APIEndpointProvider;
  beforeEach(inject(function(_APIEndpointProvider_) {
    APIEndpointProvider = _APIEndpointProvider_;
  }));

  it('should do something', function () {
    expect(!!APIEndpointProvider).toBe(true);
  });

});
Run Code Online (Sandbox Code Playgroud)

我错过了一个更好的解释是什么?

unit-testing jasmine angularjs angularjs-service

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

如何以角度测试事件?

我需要测试事件是否正确发出或广播,并手动触发事件.

最好的方法是什么?

unit-testing javascript-events jasmine angularjs angularjs-directive

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

Angular中的单元测试指令控制器,不会使控制器全局化

在Vojta Jina的优秀存储库中,他演示了指令的测试,他在模块包装器之外定义了指令控制器.请参见:https: //github.com/vojtajina/ng-directive-testing/blob/master/js/tabs.js

这不是不好的做法并污染全局命名空间吗?

如果一个人有另一个地方可以合理地调用TabsController,那会不会打破这些东西?

所提到的指令的测试可以在这里找到:https://github.com/vojtajina/ng-directive-testing/commit/test-controller

是否可以将指令控制器与指令的其余部分分开测试,而无需将控制器放在全局命名空间中?

将整个指令封装在app.directive(...)定义中会很好.

unit-testing jasmine angularjs angularjs-directive karma-runner

66
推荐指数
3
解决办法
3万
查看次数

单页面应用程序中的可访问性(ARIA等)

制作SPA(AngularJS)可访问(屏幕阅读器等)的最佳方法是什么?

我对aria规范几乎没有任何经验,我想知道它是否适用于单页应用程序.

开发时常见的陷阱有哪些?

如何在开发时调试和测试可访问性?

accessibility angularjs single-page-application

41
推荐指数
1
解决办法
8019
查看次数

如何在AngularJS中的指令单元测试中注入服务

我需要测试一个指令来执行一些注入服务的调用.下面的代码是一个示例指令,用于侦听事件,如果在指定元素内按下enter,则重定向浏览器.

编辑:我觉得我可能会在E2E测试土地上涉水?

angular.module('fooApp')
  .directive('gotoOnEnter', ['$location', function ($location) {

    var _linkFn = function link(scope, element, attrs) {

        element.off('keypress').on('keypress', function(e) {
                  if(e.keyCode === 13)
                  {
                       $location.path(scope.redirectUrl);
                  }
              });
    }

    return {
      restrict: 'A',
      link: _linkFn
    };
  }]);
Run Code Online (Sandbox Code Playgroud)

问题是我还没有弄清楚如何注入服务来监视它们的指令.

我提出的解决方案看起来像这样: 它没有按预期工作,因为我没有设法$locacion成功注入服务来监视.

describe('Directive: gotoOnEnter', function () {
  beforeEach(module('fooApp'));

  var element;

  it('should visit the link in scope.url when enter is pressed', inject(function ($rootScope, $compile, $location) {

    element = angular.element('<input type="text" goto-on-enter>');
    element = $compile(element)($rootScope);

    $rootScope.redirectUrl = 'http://www.google.com';
    $rootScope.$digest();

    var e = jQuery.Event('keypress'); …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine angularjs angularjs-directive

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

如何在AngularJS中测试具有resolve属性的控制器?

如何测试具有解析属性的控制器?它抛出一个错误:未知提供者:InitProvider,在测试期间,可以理解.我该怎么测试呢?

我在路由配置中使用init属性来加载数据并在控制器实例化时将其传递给控制器​​,这样在加载数据之前路由不会改变.

  $routeProvider
    .when('/topic/:topic_id/content/:content_id', {
      templateUrl: 'views/content.html',
      controller: 'ContentCtrl',
    resolve: {
      init: ContentCtrl.init
    }
    });
Run Code Online (Sandbox Code Playgroud)

这种模式首先是完全错误的吗?

'use strict';

var ContentCtrl = ['$scope', '$location', '$routeParams', 'init', function ($scope, $location, $routeParams, init) {

    $scope.contents = init.contents;

  }];

ContentCtrl.init = ['$q', 'app_config', '$log', '$timeout', function ($q, app_config, $log, $timeout) {

    var defer = $q.defer();

    $log.log("ContentCtrl loading..");

    $timeout(function() {
        defer.resolve({contents: [
                                    {message: 'Hello!'}
                                  ]});

        $log.log("ContentCtrl loaded.");

    }, 2000);

    return defer.promise;
}];

angular.module('studentportalenApp').controller('ContentCtrl', ContentCtrl);
Run Code Online (Sandbox Code Playgroud)

我想将整个控制器封装在内部.controler('ContentCtrl', function() { ... }),但尚未弄清楚如何正确完成这一操作以使init在路由配置中可用.

unit-testing jasmine angularjs

19
推荐指数
2
解决办法
9825
查看次数

在AngularJS中初始化时将全局函数和数据附加到$ rootScope

我希望在我第一次启动AngularJS应用程序时或每次刷新页面时都有一个"全局函数".

此函数将调用我的服务器$http.get()以获取使用我的应用程序所需的全局信息.我需要访问$rootScope此功能.在此之后,只有在此请求完成后,我才使用app.config$routeProvider.when()加载好的控制器.

app.config(['$routeProvider', function($routeProvider) {
    $routeProvider
        .when('/', 
        {
            /**/
        });
}]);
Run Code Online (Sandbox Code Playgroud)

我不希望应用程序在此操作完成之前执行某些操作.所以我想我必须使用"解决方案",但我真的不知道如何使用它.

任何的想法?

谢谢!

javascript angularjs

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

如何测试AngularJS中是否抛出异常

我需要测试一个指令,它应该抛出异常.如何在茉莉花中测试抛出异常?

指令链接功能:

link: function() {
    if(something) {
        throw new TypeError('Error message');
    }
}
Run Code Online (Sandbox Code Playgroud)

我还没有成功实现一个实际捕获错误并报告测试成功的测试.

unit-testing jasmine angularjs angularjs-directive

15
推荐指数
2
解决办法
6315
查看次数