我需要能够根据范围内的布尔变量向元素添加"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中删除了,为什么会这样呢?
如何在Android模拟器中启用实时重新加载?
android 的文档对于android noob来说并不是很有帮助.
在下面的示例测试中,原始提供者名称是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 javascript-events jasmine angularjs angularjs-directive
在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
制作SPA(AngularJS)可访问(屏幕阅读器等)的最佳方法是什么?
我对aria规范几乎没有任何经验,我想知道它是否适用于单页应用程序.
开发时常见的陷阱有哪些?
如何在开发时调试和测试可访问性?
我需要测试一个指令来执行一些注入服务的调用.下面的代码是一个示例指令,用于侦听事件,如果在指定元素内按下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) 如何测试具有解析属性的控制器?它抛出一个错误:未知提供者: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在路由配置中可用.
我希望在我第一次启动AngularJS应用程序时或每次刷新页面时都有一个"全局函数".
此函数将调用我的服务器$http.get()以获取使用我的应用程序所需的全局信息.我需要访问$rootScope此功能.在此之后,只有在此请求完成后,我才使用app.config并$routeProvider.when()加载好的控制器.
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/',
{
/**/
});
}]);
Run Code Online (Sandbox Code Playgroud)
我不希望应用程序在此操作完成之前执行某些操作.所以我想我必须使用"解决方案",但我真的不知道如何使用它.
任何的想法?
谢谢!
我需要测试一个指令,它应该抛出异常.如何在茉莉花中测试抛出异常?
指令链接功能:
link: function() {
if(something) {
throw new TypeError('Error message');
}
}
Run Code Online (Sandbox Code Playgroud)
我还没有成功实现一个实际捕获错误并报告测试成功的测试.
angularjs ×9
jasmine ×6
unit-testing ×6
android ×1
javascript ×1
karma-runner ×1
react-native ×1