我需要使用哪些JavaScript来从iframe重定向父窗口?
我希望他们单击一个超链接,使用JavaScript或任何其他方法,将超级父窗口重定向到新的URL.
我的视图中有一个项目列表,ng-click
附在它们上面:
<ul id="team-filters">
<li ng-click="foo($event, team)" ng-repeat="team in teams">
<img src="{{team.logoSmall}}" alt="{{team.name}}" title="{{team.name}}">
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我foo
在我的指令中处理函数中的click事件,$event
作为对已被单击的对象的引用传递,但我得到对img
标记的引用,而不是li
标记.然后,我必须做这样的事情来得到li
:
$scope.foo = function($event, team) {
var el = (function(){
if ($event.target.nodeName === 'IMG') {
return angular.element($event.target).parent(); // get li
} else {
return angular.element($event.target); // is li
}
})();
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法来获取对ng-click
绑定的元素的引用,而不在我的指令中执行DOM操作?
我的应用程序中有一个特殊请求需要基本身份验证,因此我需要为该请求设置Authorization标头.我读到了有关设置HTTP请求标头的内容,但据我所知,它将为该方法的所有请求设置该标头.我的代码中有类似的东西:
$http.defaults.headers.post.Authorization = "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==";
Run Code Online (Sandbox Code Playgroud)
但我不希望我的每个帖子请求发送此标头.有没有办法只为我想要的一个请求发送标题?或者我是否必须在我的要求后将其删除?
我很好奇AngularJS中究竟是什么装饰者.除了AngularJS文档中的模糊以及YouTube视频中的简短(虽然有趣)之外,在线提供的信息并不多.
正如Angular家伙所说的那样,装饰者是:
服务的装饰,允许装饰者拦截服务实例的创建.返回的实例可以是原始实例,也可以是委托给原始实例的新实例.
我真的不知道这意味着什么,我不确定为什么要将这个逻辑与服务本身分开.例如,如果我想在不同条件下返回不同的东西,我会将不同的参数传递给相关函数或使用另一个共享该私有状态的函数.
我仍然是一个AngularJS菜鸟,所以我确定这只是我所捡到的无知和/或坏习惯.
我有一个表字段membername
,其中包含姓氏和用户的名字.是否有可能分裂成那些2场memberfirst
,memberlast
?
所有记录都具有"Firstname Lastname"格式(没有引号,中间有空格).
我有一个像这样声明的JS对象
$scope.items = {};
Run Code Online (Sandbox Code Playgroud)
我还有一个$ http请求,用项目填充此对象.我想检测这个项目是否为空,看来ng-show支持这个...我输入
ng-show="items"
Run Code Online (Sandbox Code Playgroud)
并且神奇地它可以工作,我也想从控制器做同样的事情,但我似乎无法让它工作,似乎我可能必须迭代对象,看看它是否有任何属性或使用lodash或下划线.
还有其他选择吗?
我确实试过了
alert($scope.items == true);
Run Code Online (Sandbox Code Playgroud)
但是当对象被创建并填充时$http
,它总是返回false,所以它不会那样工作.
因此,我了解Node.js的工作原理:它有一个侦听器线程,它接收一个事件,然后将其委托给一个工作池.工作线程在完成工作后通知侦听器,然后侦听器将响应返回给调用者.
我的问题是:如果我在Node.js中站起来一个HTTP服务器并在我的一个路由路径事件(例如"/ test/sleep")上调用sleep,整个系统就会停止运行.甚至是单个监听器线程.但我的理解是这个代码发生在工作池上.
现在,相比之下,当我使用Mongoose与MongoDB通信时,DB读取是一种昂贵的I/O操作.Node似乎能够将工作委托给一个线程并在完成时接收回调; 从DB加载所花费的时间似乎并没有阻止系统.
Node.js如何决定使用线程池线程与侦听器线程?为什么我不能编写睡眠的事件代码并且只阻塞线程池线程?
让我们假设我merge
git并且存在合并冲突.
我的问题是:如何强制git始终选择冲突的较新版本的代码,所以我不需要手动解决冲突?
我在JavaScript中的日期对象始终由UTC + 2表示,因为我所处的位置.就像这样
Mon Sep 28 10:00:00 UTC+0200 2009
Run Code Online (Sandbox Code Playgroud)
问题在于JSON.stringify
将上述日期转换为
2009-09-28T08:00:00Z (notice 2 hours missing i.e. 8 instead of 10)
Run Code Online (Sandbox Code Playgroud)
我需要的是获得荣誉的日期和时间,但事实并非如此,因此它应该是
2009-09-28T10:00:00Z (this is how it should be)
Run Code Online (Sandbox Code Playgroud)
基本上我用这个:
var jsonData = JSON.stringify(jsonObject);
Run Code Online (Sandbox Code Playgroud)
我尝试传递一个replacer参数(stringify上的第二个参数),但问题是该值已经被处理.
我也试过使用toString()
和toUTCString()
日期对象,但这些并没有给我我想要的东西..
谁能帮我?
有没有办法为已经引导的角度模块注入延迟依赖?这就是我的意思:
假设我有一个站点范围的角度应用程序,定义为:
// in app.js
var App = angular.module("App", []);
Run Code Online (Sandbox Code Playgroud)
在每一页:
<html ng-app="App">
Run Code Online (Sandbox Code Playgroud)
稍后,我重新打开应用程序,根据当前页面的需要添加逻辑:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
Run Code Online (Sandbox Code Playgroud)
现在,说是逻辑的那些点播位中的一个还需要自己的依赖关系(如ngTouch
,ngAnimate
,ngResource
,等).如何将它们附加到基础应用程序?这似乎不起作用:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
Run Code Online (Sandbox Code Playgroud)
我意识到我可以事先做好一切,即 -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
Run Code Online (Sandbox Code Playgroud)
或者自己定义每个模块,然后将所有内容注入主应用程序(有关更多信息,请参阅此处):
// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', …
Run Code Online (Sandbox Code Playgroud)