谁能告诉我之间的区别blur和focusout,focus并focusin用一个简单的例子吗?
它是不好的做法,同时声明ng-app,并ng-controller在<html>标签?
例如: <html class="no-js" ng-app="myApp" ng-controller="MainCtrl">
这被认为是不好的做法吗?我试图<title>动态控制我的应用程序的标记,所以我想MainCtrl尽早声明控制器,因为它的范围在应用程序的其余部分很重要.
然后我可以<title>{{settings.title}}</title>在MainCtrl控制器中使用并让子控制器通过它访问它$scope.$parent.settings.title = "hello world";
是否有可能在CSS中为进度标记着色?我尝试过这个.但只有宽度和高度才有效.我希望皮肤颜色的进展(内部颜色,显示下载的百分比).可能吗?
我对Angular很新,并且已经回顾了Stack Overflow上所有类似相关的问题,但没有人帮助过我.我相信我已经正确设置了一切但在尝试将服务注入单元测试时仍然出现"未知提供商"错误.我在下面列出了我的代码 - 希望有人能发现一个明显的错误!
我在一个单独的.js文件中定义我的模块,如下所示:
angular.module('dashboard.services', []);
angular.module('dashboard.controllers', []);
Run Code Online (Sandbox Code Playgroud)
这里我定义了一个名为EventingService的服务(为简洁起见,删除了逻辑):
angular.module('dashboard.services').factory('EventingService', [function () {
//Service logic here
}]);
Run Code Online (Sandbox Code Playgroud)
这是我使用EventingService的控制器(这在运行时都可以正常工作):
angular.module('dashboard.controllers')
.controller('Browse', ['$scope', 'EventingService', function ($scope, eventing) {
//Controller logic here
}]);
Run Code Online (Sandbox Code Playgroud)
这是我的单元测试 - 它是我尝试注入EventingService的行,当我运行单元测试时会导致错误:
describe('Browse Controller Tests.', function () {
beforeEach(function () {
module('dashboard.services');
module('dashboard.controllers');
});
var controller, scope, eventingService;
beforeEach(inject(function ($controller, $rootScope, EventingService) {
scope = $rootScope.$new();
eventingService = EventingService
controller = $controller('Browse', {
$scope: scope,
eventing: eventingService
});
}));
it('Expect True to be True', function () …Run Code Online (Sandbox Code Playgroud) 在AngularJS中,我注意到注入了一个控制器$element,它是控制器控制的元素的JQuery/JQLite包装器.例如:
<body ng-controller="MainCtrl">
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过注入访问控制器中的body元素 $element
app.controller('MainCtrl', function($scope, $element) { ...
Run Code Online (Sandbox Code Playgroud)
这可以在Plunkr工作.
并且似乎被确认为$ compile的文档中的故意功能
我的问题是:
根据各种指南和教程,建议您不要在控制器中访问DOM,为什么这可能呢?
是否有任何非hacky用例?
在某处可用的代码中是否有任何这样的例子?
谢谢.
我尝试用Jasmine测试我的应用程序并遇到以下问题:
我将根据then我的承诺计算一些东西.这就是我需要测试代码的地方.
这是我的控制器的代码:
TestCtrl.$inject = ["$scope", "TestService"];
/* ngInject */
function TestCtrl($scope, TestService) {
$scope.loadData = function () {
TestService.getData().then(function (response) {
$scope.data = response.data;
$scope.filtered = $scope.data.filter(function(item){
if(item.id > 1000){
return true;
}
return false;
})
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的Jasmine测试代码:
describe('TestService tests', function () {
var $q;
beforeEach(function () {
module('pilot.fw.user');
});
beforeEach(inject(function (_$q_) {
$q = _$q_;
}));
describe('UserController Tests', function () {
beforeEach(inject(function (_$httpBackend_, $rootScope, $controller) {
this.scope = $rootScope.$new();
this.$rootscope = $rootScope;
this.$httpBackend = …Run Code Online (Sandbox Code Playgroud) 我一直在阅读Jasmine文档,我一直在努力理解Spies .and.stub方法实际上做了什么.英语不是我的母语,所以我甚至不知道"存根"这个词实际意味着什么,而且我的语言中没有翻译.
在文档中它说:
当调用策略用于间谍时,可以随时使用and.stub返回原始存根行为.
describe("A spy", function() {
var foo, bar = null;
beforeEach(function() {
foo = {
setBar: function(value) {
bar = value;
}
};
spyOn(foo, 'setBar').and.callThrough();
});
it("can call through and then stub in the same spec", function() {
foo.setBar(123);
expect(bar).toEqual(123);
foo.setBar.and.stub();
bar = null;
foo.setBar(123);
expect(bar).toBe(null);
});
});
Run Code Online (Sandbox Code Playgroud)
什么是and.stub真正做的,它有何作用?
我正在寻找Object.keys+ forEachvs for-in普通物体的性能指标.
这个基准表明,Object.keys+ forEach是慢62%比for-in的方法.但是,如果您不想获得继承的属性呢?for-in包括所有非本地继承对象,因此我们必须使用hasOwnProperty来检查.
我试着在这里做另一个基准测试.但现在这种for-in方法比+ 慢了41%.Object.keysforEach
更新
上述测试是在Chrome中完成的.再次测试,但使用Safari,我得到了不同的结果:Object.keys(..).forEach(..) 34% slower奇怪.
注意:我进行基准测试的原因是检查它与Node.js的关系.
问题:
jsperf结果对Node.js来说是否相当可观?for-in的方法要慢41%,比Object.keys+ forEach的镀铬?我已成功实施Google地图.但还有一件事要做.当用户点击地图(任何坐标)时,我需要检索经度和纬度数据.我的整个代码如下所示:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(<?=$decimalValueLon?>,<?=$decimalValueLat?>);
var myOptions = {
zoom: 17,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
// marker STARTS
var marker = new google.maps.Marker({
position: myLatlng,
title:"Click to view info!"
});
marker.setMap(map);
// marker ENDS
// info-window STARTS
var infowindow = new google.maps.InfoWindow({ content: "<div class='map_bg_logo'><span style='color:#1270a2;'><b><?=$row->bridge_name?></b> (<?=$row->bridge_no?>)</span><div style='border-top:1px dotted #ccc; height:1px; margin:5px 0;'></div><span style='color:#555;font-size:11px;'><b>Length: </b><?=$row->bridge_length?> meters</span></div>" });
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
}); …Run Code Online (Sandbox Code Playgroud) 我有一个网页,其中iframe中有一个textarea.我需要使用JavaScript从其子页面读取此textarea的值.
目前,通过window.parent.getelementbyID().value在JavaScript中使用,我能够获取父页面中除iframe中的textarea之外的所有控件的值.
任何人都可以给我任何指示来解决这个问题吗?
javascript ×7
angularjs ×4
jasmine ×2
css ×1
css3 ×1
google-maps ×1
html5 ×1
iframe ×1
inheritance ×1
inject ×1
jquery ×1
mocking ×1
testing ×1
unit-testing ×1