我正在尝试设置AngularJS与跨源资源进行通信,其中传递我的模板文件的资产主机位于不同的域上,因此角度执行的XHR请求必须是跨域的.我已经为我的服务器添加了适当的CORS标头,以便使其工作,但它似乎不起作用.问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(它应该是GET请求).
我不确定这是AngularJS中的错误还是我需要配置一些东西.根据我的理解,XHR包装器无法发出OPTIONS HTTP请求,因此看起来浏览器正在试图确定在执行GET请求之前是否"允许"首先下载资产.如果是这种情况,那么我是否还需要使用资产主机设置CORS标头(Access-Control-Allow-Origin:http://asset.host ..)?
Angular确实为在HTML指令中使用数字的for循环提供了一些支持:
<div data-ng-repeat="i in [1,2,3,4,5]">
do something
</div>
Run Code Online (Sandbox Code Playgroud)
但是,如果您的范围变量包含具有动态数字的范围,那么您每次都需要创建一个空数组.
在控制器中
var range = [];
for(var i=0;i<total;i++) {
range.push(i);
}
$scope.range = range;
Run Code Online (Sandbox Code Playgroud)
在HTML中
<div data-ng-repeat="i in range">
do something
</div>
Run Code Online (Sandbox Code Playgroud)
这是有效的,但这是不必要的,因为我们不会在循环中使用范围数组.有没有人知道为最小/最大值设置范围或常规?
就像是:
<div data-ng-repeat="i in 1 .. 100">
do something
</div>
Run Code Online (Sandbox Code Playgroud) 有没有人知道在angularJS中使用美元方法和变量背后的原因是指示angularJS在消化过程中避免检查这些值?所以,如果角度遇到$scope.$value和$scope.value,然后它会避免检查前,因为它与它的变量名称美元字符前缀?
我在提交表单后更改页面的URL时遇到问题.
这是我的应用程序的流程:
$scope.onAfterSubmit设置位置的函数.问题是在设置位置后没有任何反应.我也试过设置位置参数/......不.我也试过不提交表格.什么都行不通.
我已经测试过以查看代码是否达到了onAfterSubmit函数(它的功能).
我唯一想到的是,函数的范围以某种方式被改变(因为它从一个指令中被调用),但是onAfterSubmit如果范围发生变化,它又如何调用呢?
这是我的代码
var Ctrl = function($scope, $location, $http) {
$http.get('/resources/' + $params.id + '/edit.json').success(function(data) {
$scope.resource = data;
});
$scope.onAfterSubmit = function() {
$location.path('/').replace();
};
}
Ctrl.$inject = ['$scope','$location','$http'];
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
Curl提供了一系列不同的http方法调用,它们以X为前缀,但也提供了相同的方法.我已经试过了两个,我似乎无法找出差异.有人可以快速向我解释这两种操作有何不同?
将AngularJS与其他JavaScript-MVC框架区分开来的一件事是它能够使用绑定将绑定值从JavaScript回显到HTML.当您为$ scope变量赋值时,Angular会"自动"执行此操作.
但这有多自动?有时,Angular不会接受更改,所以我需要调用$ scope.$ apply()或$ scope.$ digest()来通知angular拾取更改.有时,当我运行这些方法中的任何一个时,它会抛出一个错误,并表示摘要已在进行中.
由于绑定({{}}括号或ng-属性内的任何内容)都与eval一起回应,这意味着Angular会不断轮询$ scope对象以查找更改,然后执行eval将这些更改推送到DOM/HTML?或者AngularJS以某种方式找出了使用魔术变量来触发变量值变化或分配时触发的事件?我从来没有听说过所有浏览器都完全支持它,所以我对此表示怀疑.
AngularJS如何跟踪它的绑定和范围变量?
NodeJS是大型服务器端应用程序的良好框架/代码库吗?我想要开发的是一个需要HTTP事务(状态)和大量并发用户的大型应用程序.
从我在网上看到的,NodeJS并不是大型程序使用的最佳工具.我遇到的情况如下:
有什么我想念的吗?NodeJS真的像它一样强大吗?
我有一个使用AngularJS构建的应用程序和一个以JSON格式提供所有请求的服务器端后端.每个请求都包含在一个JSON容器中,该容器包含一个数据变量,该变量包含特定于请求的数据.其他数据用于保持应用程序中的状态和控制,检查错误和成功消息,并检查会话标志.所有这些其他变量都按照每个请求提供,并在数据变量之前首先进行检查.
现在我有一个方法来首先检查JSON响应的内容,然后检查数据本身.
$http.get('something.json').success(function(response) {
var data = examineJSONResponse(response);
//do the data stuff
});
Run Code Online (Sandbox Code Playgroud)
这工作,并且examineJSONResponse查看代码,如果有什么错误,它会抛出异常并使用window.location.href重新加载页面.
有没有什么方法可以在AngularJS中自动执行此操作,以便每次进行$ http调用时它会检查这个并且只返回数据变量内容作为JSON响应?
Rails 3.1有一个方便的系统,可以将文件压缩成.gz文件.但是,相反,我已经将所有使用资产创建的资产文件:precompile移动到静态Web服务器.这一切都有效,但我怎样才能让nginx正常提供.gz文件?
有谁知道如何检查AngularJS中是否找不到资源?
例如:
//this is valid syntax
$scope.word = Word.get({ id : $routeParams.id },function() {
//this is valid, but won't be fired if the HTTP response is 404 or any other http-error code
});
//this is something along the lines of what I want to have
//(NOTE THAT THIS IS INVALID AND DOESN'T EXIST)
$scope.word = Word.get({ id : $routeParams.id },{
success : function() {
//good
},
failure : function() {
//404 or bad
}
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
angularjs ×7
javascript ×2
json ×2
assets ×1
cors ×1
cross-domain ×1
curl ×1
gzip ×1
http-method ×1
interceptor ×1
nginx ×1
node.js ×1
preflight ×1