小编dnc*_*253的帖子

AngularJS中的$ evalAsync和$ timeout之间有什么区别?

我一直在使用AngularJS一段时间,并且发现需要每隔一段时间使用$ timeout(似乎通常是初始化一个jQuery插件).

最近,我一直在努力更好,更深入地了解摘要周期,我遇到了$ evalAsync函数.

似乎该函数产生类似的结果$timeout,只有你没有给它延迟.每次我使用$timeout它都会延迟0,所以现在我想知道我是否应该使用它$evalAsync.

这两者之间是否存在根本差异?你会用哪种情况比另一种情况多?我想更好地了解何时使用哪一个.

angularjs angularjs-timeout

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

为一个请求设置HTTP标头

我的应用程序中有一个特殊请求需要基本身份验证,因此我需要为该请求设置Authorization标头.我读到了有关设置HTTP请求标头的内容,但据我所知,它将为该方法的所有请求设置该标头.我的代码中有类似的东西:

$http.defaults.headers.post.Authorization = "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==";
Run Code Online (Sandbox Code Playgroud)

但我不希望我的每个帖子请求发送此标头.有没有办法只为我想要的一个请求发送标题?或者我是否必须在我的要求后将其删除?

javascript http-headers angularjs

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

AngularJS - $ http.post发送请求参数而不是JSON的任何方式?

我有一些旧的代码通过jQuery的post方法发出一个AJAX POST请求,看起来像这样:

$.post("/foo/bar", requestData,
    function(responseData)
    {
        //do stuff with response
    }
Run Code Online (Sandbox Code Playgroud)

requestData 只是一个具有一些基本字符串属性的javascript对象.

我正在将我们的东西移动到使用Angular,我想用$ http.post替换这个调用.我想出了以下内容:

$http.post("/foo/bar", requestData).success(
    function(responseData) {
        //do stuff with response
    }
});
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到了来自服务器的500错误响应.使用Firebug,我发现这样就发送了请求体:

{"param1":"value1","param2":"value2","param3":"value3"}
Run Code Online (Sandbox Code Playgroud)

成功的jQuery $.post发送身体像这样:

param1=value1&param2=value2&param3=value3
Run Code Online (Sandbox Code Playgroud)

我遇到的端点是期望请求参数而不是JSON.所以,我的问题是,无论如何要告诉$http.post发送javascript对象作为请求参数而不是JSON?是的,我知道我可以自己从对象构造字符串,但我想知道Angular是否提供了开箱即用的东西.

javascript jquery post angularjs

116
推荐指数
7
解决办法
21万
查看次数

Java反射 - setAccessible的影响(true)

我正在使用一些注释来动态设置类中的字段值.因为无论是public,protected还是private,我想这样做,setAccessible(true)每次调用set()方法之前,我都调用Field对象.我的问题是这个setAccessible()电话会对电影本身产生什么样的影响?

更具体地说,它是一个私有字段和这组代码调用setAccessible(true).如果代码中的其他位置然后通过反射检索相同的字段,那么该字段是否已经可访问?或者getDeclaredFields(),getDeclaredField()方法每次都返回Field对象的新实例吗?

我想另一种陈述问题的方法是,如果我打电话setAccessible(true),在我完成之后将它设置回原始值有多重要?

java reflection

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

AngularJS - 如何在生成templateUrl时使用$ routeParams?

我们的应用程序有2级导航.我们想使用AngularJS $routeProvider动态地为模板提供模板<ng-view />.我正在考虑按照以下方式做一些事情:

angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/:primaryNav/:secondaryNav', {
        templateUrl: 'resources/angular/templates/nav/'+<<primaryNavHere>>+'/'+<<secondaryNavHere>>+'.html'
    });
}]);
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何填充内部的部分<<>>.我知道primaryNav和secondaryNav绑定到$ routeParams,但是如何在这里访问$ routeParams以动态提供模板?

javascript angularjs

96
推荐指数
4
解决办法
21万
查看次数

如何覆盖$ exceptionHandler实现

在抛出javascript异常的任何时候我们都想做一些额外的事情.

来自以下文档$exceptionHandler:

角度表达式中的任何未捕获的异常都委托给此服务.默认实现只是委托给$ log.error,它将其记录到浏览器控制台中.

它说"默认实现"的事实使我认为有一种方法可以为服务提供我们自己的实现,并在抛出异常时执行我们想要的操作.我的问题是,你是怎么做到的?我们如何将所有异常保留在此服务中,然后提供我们希望发生的功能?

javascript exception-handling angularjs

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

你究竟对transclude函数和克隆链接函数做了什么?

指令Angular docs,我看到compile函数有3个参数,其中一个是transclude.文档提供的唯一解释是:

transclude - 一个transclude链接函数:function(scope,cloneLinkingFn).

我试图了解你在克隆链接功能中会做些什么.我甚至不知道哪些参数传递给它.我找到了一个示例,其中有一个参数被称为cloneHTML元素.还有其他参数吗?这究竟是哪个HTML元素?我也在考虑使用transclude: 'element'我的指令.执行这些问题的答案时,用改变'element'来代替true

我用简单的例子来理解翻译,但我似乎无法找到更复杂的例子,尤其是transclude: 'element'.我希望有人能对这一切提供更全面的解释.谢谢.

angularjs

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

如何在Snow Leopard上安装java jdk 7

我的Mac目前正在运行Snow Leopard(10.6.8),我想用Java 7开发.我从Oracle的网站上下载了Java 7 OS X安装程序,开始运行它.不幸的是,我立即收到一条消息,称只有OS X Lion(10.7.3)才支持安装程序.有什么方法可以在我的机器上使用Snow Leopard获得Java 7吗?我不是为了升级我的Java而购买新的操作系统.我搜索了一些,但我找不到多少.我希望我能在这里找到一些帮助.谢谢.

java osx-snow-leopard java-7

68
推荐指数
4
解决办法
8万
查看次数

如何在动态更改选项时修复IE选择问题

我有一组选择,都有相同的选项.然后我通过过滤器运行这些选项,以便在选择中不显示在不同选择中选择的任何选项.看到这个jsFiddle(在非IE浏览器中)看看我的意思.基本上我阻止在选择中多次选择相同的选项

现在,我所做的事情在IE中存在问题.在IE中打开那个小提琴(我只在IE9中试过它,但我猜测以前的版本有同样的问题).将最后一个选择更改为AAA.注意3个其他选择如何改变他们显示的内容.他们的模型并没有改变,但是当选项改变时,IE会以某种方式窒息.

我的问题是第一,我是否在使用此功能时出错?这个代码完全符合我想要的Chrome和FF,但我做的是我不应该做的事情吗?其次,我怎样才能在IE中解决这个问题?我尝试了一些可以清除和重新设置模型的超时,但事情明显地跳了起来.我想知道是否有一个良好,干净,低影响的解决方法.

任何帮助将非常感激.谢谢.

--UPDATE--

这已经在Angular本身使用版本1.3.3 修复,使用下面的AS Ranjan解决方案.看看1.3.3的新小提琴:http://jsfiddle.net/m2ytyapv/

//dummy code so I can post the edit
Run Code Online (Sandbox Code Playgroud)

internet-explorer html-select angularjs

64
推荐指数
4
解决办法
6万
查看次数

如何模拟指令以启用更高级指令的单元测试?

在我们的应用程序中,我们有几层嵌套指令.我正在尝试为顶级指令编写一些单元测试.我已经嘲笑了指令本身需要的东西,但现在我遇到了来自低级指令的错误.在我对顶级指令的单元测试中,我不想担心低级指令中发生了什么.我只想模拟低级指令,基本上它没有做任何事情,所以我可以单独测试顶级指令.

我尝试通过这样的方式覆盖指令定义:

angular.module("myModule").directive("myLowerLevelDirective", function() {
    return {
        link: function(scope, element, attrs) {
            //do nothing
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,这不会覆盖它,它只是在真正的指令之外运行它.如何阻止这些低级指令在顶级指令的单元测试中做任何事情?

unit-testing angularjs angularjs-directive

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