我正在寻找任何方式访问指令中的"父"范围.范围,转换,要求的任何组合,从上面传递变量(或范围本身)等.我完全愿意向后弯腰,但我想避免一些完全hacky或不可维护的东西.例如,我知道我现在可以通过$scope从preLink参数中获取并迭代它的$sibling范围来找到概念性的"父".
我真正想要的是能够$watch在父范围内表达.如果我能做到这一点,那么我可以完成我在这里要做的事情:
AngularJS - 如何使用变量渲染部分?
重要的一点是,该指令必须可以在同一父范围内重复使用.因此默认行为(范围:false)对我不起作用.我需要每个指令实例的单独范围,然后我需要$watch一个存在于父范围内的变量.
代码示例值1000个单词,因此:
app.directive('watchingMyParentScope', function() {
return {
require: /* ? */,
scope: /* ? */,
transclude: /* ? */,
controller: /* ? */,
compile: function(el,attr,trans) {
// Can I get the $parent from the transclusion function somehow?
return {
pre: function($s, $e, $a, parentControl) {
// Can I get the $parent from the parent controller?
// By setting this.$scope = $scope from within that controller?
// …Run Code Online (Sandbox Code Playgroud) 例如,我有一个部分car-list.html,我想在几个地方用不同的汽车集合渲染它.也许是这样的:
<h1>All New Cars</h1>
<div ng-include="car-list.html" ng-data-cars="allCars | onlyNew"></div>
<h1>All Toyotas</h1>
<div ng-include="car-list.html" ng-data-cars="allCars | make:toyota"></div>
Run Code Online (Sandbox Code Playgroud)
与普通包括的主要区别在于,部分不需要知道它所显示的汽车列表.它给出了一系列汽车,并显示它们.可能像:
<!-- car-list.html -->
<div ng-repeat="car in cars" ng-controller="CarListControl">
{{car.year}} {{car.make}} {{car.model}}
</div>
Run Code Online (Sandbox Code Playgroud) 我正在尝试调试Rails没有解码JSON POST数据的问题.
服务器日志显示:
2011-12-14T06:44:44+00:00 app[web.2]: Started POST
2011-12-14T06:44:44+00:00 app[web.2]: Processing by PostsController#create as */*
2011-12-14T06:44:44+00:00 app[web.2]: Parameters: {"{\"athlete_id\":\"\",\"known_as\":\"abc\",\"email\":\"abc@defg.com\",\"result\":\"112233\",\"rx\":false,\"mods\":\"thkjth\",\"notes\":\"\"}"=>nil, "affiliate_id"=>"testaffiliate", "wod_id"=>"12345"}
Run Code Online (Sandbox Code Playgroud)
请注意,JSON字符串未被解析--Rails将其指定为散列中的键,指向nil值.在我写一个尝试JSON.parse所有params键的before_filter之前,有没有人有任何想法?
我不认为这是相关的,因为我发送和接收数据没问题,但是这个问题发生在来自IE的CORS请求期间(使用XDomainRequest).
难道概念OpenLayers.Bounds从2.X的OpenLayers仍处于3的OpenLayers存在?它是如何改变的,它的新名称是什么?
我遇到了客户端无限循环导致Meteor服务器崩溃的情况.无限循环是我将修复的错误,而不是这个问题的主题.我担心的是恶意用户可能会创建自己的无限循环并使Meteor服务器崩溃.
有问题的无限循环是反复调用Meteor.subscribe(...)和Meteor.call(...).看起来这些请求正在服务器上排队到达失能的程度,即使客户的意图是放弃它们.有没有办法告诉服务器该请求已被放弃并将其从队列中删除?
我认为这不会保护服务器免受客户端的影响而无需放弃数千个连续请求,因此如果有人有答案,这个问题将取代这个问题.如何限制单个客户端可以发出的请求数?
在这些APM图表中,您可以看到无限循环如何影响性能.我在大约13:17开始它,并且在13:25应用程序崩溃(由Heroku终止超过其内存配额).

我们在一个新项目中使用Relay和GraphQL.
我们有一个Relay突变,它在DB中创建了一个新模型:
export default class AddCampaignMutation extends Relay.Mutation {
getMutation() {
return Relay.QL`mutation { addCampaign }`;
}
getVariables() {
return {
type: this.props.campaignType
};
}
getFatQuery() {
return Relay.QL`
fragment on AddCampaignPayload {
campaignEdge
viewer
}
`;
}
getConfigs() {
return [{
type: 'RANGE_ADD',
parentName: 'viewer',
parentID: this.props.viewer.id,
connectionName: 'campaigns',
edgeName: 'campaignEdge',
rangeBehaviors: {
'': 'append',
},
}];
}
static fragments = {
viewer: () => Relay.QL`
fragment on User {
id
}
`,
};
}
Run Code Online (Sandbox Code Playgroud)
但是,由于没有任何组件当前正在查询RANGE_ADD(viewer { campaigns …
所以我在rails 3应用程序中使用jquery文件上传,一切都很好,除了在IE 9中.仅在IE9中,当我尝试上传文件时,我在控制台中不断收到"无法验证csrf令牌"错误.我安装了Firebug lite来检查它,并且正确的csrf令牌是正确的并且在文档中的正确位置(是的,我在布局文件的标题中有我的<%= csrf_meta_tags%>标记).不确定为什么它只在IE 9中这样做,有没有人见过这个?
编辑:我刚刚意识到这是AJAX、CORS、Chrome 和 HTTP 错误代码 (401,403,404,500)的推荐解决方案的副本,他在最后尝试了我提出的想法。但是我不知道他是否成功了(无用的用户?),并且没有其他人发布了解决方案甚至评论,所以我认为值得寻找新的答案。
问题:
422 Unprocessable Entity,以及有关错误的 JSON 信息。这个想法是我的应用程序可以接收此错误信息并在 UI 中适当地处理它。显示浏览器收到401状态代码但将其视为 CORS 安全错误:

响应对象,显示我的代码无法访问响应数据 ( data: "", status: 0):

其他人是如何处理这个限制的?我现在最好的猜测是劫持 HTTP“成功”代码 ( 2XX) 作为错误代码,然后在响应中包含错误信息。这使我无法以正常方式使用 ajax 错误处理程序,但无论如何我都将其作为全局 ajax 过滤器处理,因此该过滤器将捕获异常成功代码并改为触发错误处理程序。
在GraphQL中,我正在尝试创建一个GeoJSON对象类型.
当我指定GraphQLFloats 的4维数组时,我在启动服务器时出错:
Error: Decorated type deeper than introspection query.
Run Code Online (Sandbox Code Playgroud)
类型定义如下所示:
var GraphQLGeoJSON = new GraphQLObjectType({
name: 'GeoJSON',
fields: {
type: {
type: GraphQLString,
resolve: (obj) => obj.type,
},
coordinates: {
type: new GraphQLList(new GraphQLList(new GraphQLList(new GraphQLList(GraphQLFloat)))),
resolve: (obj) => obj.coordinates,
}
}
});
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?这是源于它的地方:
我有很长的文件路径列表,例如:
images = ['path/to/1.png', 'path/to/2.png']
Run Code Online (Sandbox Code Playgroud)
我知道我可以将此列表包装在map迭代器中,该迭代器提供对通过函数映射的列表中的项的顺序访问,如:
image_map = map(cv2.imread, images)
Run Code Online (Sandbox Code Playgroud)
然后,当我迭代列表时,我可以懒洋洋地加载这些图像文件:
next(image_map)
=> pixels
Run Code Online (Sandbox Code Playgroud)
但我希望随机访问原始列表,通过我的map函数映射:
image_map[400]
=> pixels
Run Code Online (Sandbox Code Playgroud)
我不想将它转换为a list,因为这会将我的所有图像加载到内存中,并且它们不适合内存:
# Bad:
list(image_map)[400]
Run Code Online (Sandbox Code Playgroud)
考虑这个的另一种方式可能是装饰者list.__getitem__.
我知道我可以对列表进行子类化,但我真的希望有一种更清晰的方法.
angularjs ×2
cors ×2
ajax ×1
csrf ×1
ddp ×1
file-upload ×1
graphql-js ×1
http ×1
javascript ×1
json ×1
meteor ×1
openlayers ×1
openlayers-3 ×1
python ×1
python-3.x ×1
relayjs ×1