在过去的几个月里,我一直在我的PHP应用程序中使用Uploadify,而且我一直试图找出一个难以捉摸的bug.当发生致命错误时,我会收到电子邮件,并且它们为我提供了大量详细信息.我收到了几十个.但是,我没有能够自己重现这个问题.有些用户(比如我自己)没有遇到任何问题,而其他用户则有.
在我提出问题的细节之前,这是流程.
现在这就应该发生了.我收到上传冻结率为100%的报告以及其他显示"I/O错误"的报告.
发生了什么,表单是使用完成回调提交的,但表单中存在的一些帖子参数根本不在帖子数据中.页面的id,我之前说的是作为隐藏字段添加到表单中,在post数据($ _POST)中根本不存在 - $ _POST数组中没有'id'项.奇怪的是,帖子数据DOES包含某些字段的值.例如,我有一个名为"name"的文本输入,用于记录名称,它确实显示在帖子数据中.
这是我收集的内容:
有没有人有任何想法可能是什么原因?
我正在使用内容管理系统,在删除记录之前,系统会提示用户确认屏幕。有些记录是其他表中引用的外键,因此无法删除。
如果给定记录具有外键引用,我想在给定记录旁边显示一条消息。要知道是否应该显示记录的消息,我可以查询引用表并查看是否有引用。但问题是,大约有十几个表的记录可能引用该记录,并且查找可能需要“很长”的时间。
有没有一种简单的方法来判断记录是否已准备好删除(即没有外键引用)?
我正在重建一些 XML 提要,所以我正在研究何时使用元素以及何时使用 XML 的属性。
一些网站说“数据在元素中,元数据在属性中”。
那么,两者有什么区别呢?
让我们以W3Schools为例:
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Run Code Online (Sandbox Code Playgroud)
日期是否应该保留为 note 元素的属性?还是进入它自己的元素更有意义?
<date>12/11/2002</date>
Run Code Online (Sandbox Code Playgroud)
或者,将它分成多个元素是否有意义?
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
Run Code Online (Sandbox Code Playgroud) 我编写了一个使用Subversion Ruby绑定的Rails应用程序.我编写了适配器类来使它们适应我喜欢的界面.
在将我的项目升级到Rails 3并重新编译Ruby 1.9.2的SVN绑定之后,我可以转到调试控制台并像以前一样运行require'svn/core/ext'而没有任何问题.但是,当我的适配器(也运行需要'svn/ext/core')被包含时,我得到了Trace/BPT陷阱.
总而言之,我在使用Webrick运行我的应用程序并通过浏览器连接时获得了Trace/BPT陷阱,但我没有通过控制台验证错误.
任何想法为什么或如何调试这个?日志根本没有显示任何内容.
如何在Rails中调试Trace/BPT陷阱错误?我没有日志输出,没有服务器输出......没有.
我有一个控制器,可以从我的API加载数据.不幸的是,我有一个场景,我不能使用解决方案来加载数据.
angular.module('myApp').controller('myController', function() {
var myController = this;
formService.find('123').then(function(response) {
myController.formData = response.data;
});
});
Run Code Online (Sandbox Code Playgroud)
我的控制器模板然后使用一个使用此数据的指令:
<form-component form-data="myController.formData"></form-component>
Run Code Online (Sandbox Code Playgroud)
指令:
angular.module('myApp').directive('formComponent', function() {
'use strict';
return {
restrict: 'E',
scope: {
formData: '=',
},
templateUrl: 'formComponent.html',
link: function($scope, element, attrs) {
// Outputs "undefined" as this is not yet loaded when
// this directive runs.
console.log($scope.formData);
}
};
});
Run Code Online (Sandbox Code Playgroud)
如您所见,当指令运行时,API尚未返回数据,因此访问时未定义$ scope.formData.
是否有一种方法可以优雅地使我的指令只在数据可用时才开始对数据起作用?我可以想到几个解决方案,但我对任何一个都不满意:
我有以下JavaScript对象结构:
var options = {
optionOne: [true, false],
optionTwo: [true, false],
optionThree: [
null,
{property1: 9, property2: 7},
{property1: 4, property2: 12},
{property1: 16, property2: 14}
]
};
Run Code Online (Sandbox Code Playgroud)
请注意,此对象中的键/对数量会有所不同.因此,有可能实际上是optionFour,optionFive等,以及每个选项可以有它的数组值的任何数量或类型.
我需要迭代这个对象并创建一个包含所有可能选项组合的对象的数组:
[
{optionOne: true, optionTwo, true, optionThree: null},
{optionOne: false, optionTwo, true, optionThree: null},
{optionOne: true, optionTwo, false, optionThree: null},
{optionOne: false, optionTwo, false, optionThree: null},
{optionOne: true, optionTwo, true, optionThree: {property1: 9, property2: 7}},
{optionOne: false, optionTwo, true, optionThree: {property1: 9, property2: 7}},
{optionOne: true, optionTwo, …Run Code Online (Sandbox Code Playgroud) 我想将模板数据传递给我定义的"textfield"辅助方法,如下所示:
{{textfield label="{{label}}"
id="account_{{attributes.id}}"
name="account[{{attributes.name}}]"
class="some-class"
required="true"}}
Run Code Online (Sandbox Code Playgroud)
(注意{{textfield}}帮助程序调用中的{{label}}和{{attributes.id}}引用)
这是我设置模板的地方:
data = {
"attributes": {
"id": "name",
"name": "name"
},
"label": "Name"
}
var templateHtml = 'markup here';
var template = Handlebars.compile(templateHtml);
var formHtml = template(data);
Run Code Online (Sandbox Code Playgroud)
这是一个jsFiddle.
当我运行它时,我仍然在编译的标记中看到{{placeholders}}.
我怎么能做到这一点?
我正在使用带有Node的Handlebars,这很好用:
require('handlebars');
var template = require('./templates/test-template.handlebars');
var markup = template({ 'some': 'data' });
console.log(markup);
Run Code Online (Sandbox Code Playgroud)
这很好.但是,我需要在模板中注册并使用自定义帮助程序.所以,现在我的代码看起来像这样:
var Handlebars = require('handlebars');
Handlebars.registerHelper('ifEqual', function(attribute, value) {
if (attribute == value) {
return options.fn(this);
}
else {
return options.inverse(this);
}
});
var template = require('./templates/test-template.handlebars');
var markup = template({ 'some': 'data' });
console.log(markup);
Run Code Online (Sandbox Code Playgroud)
但现在当我运行我的脚本时,我得到了
错误:缺少助手:'ifEqual'
那么:如何在Node中定义和使用自定义助手?
我的公司有一个大量使用 JavaScript(基于 Backbone)的网站,该网站位于我无法控制的外部域中。我想自动化一些任务。基本上我想点击一些东西,填写一些表单字段,然后提交一个按钮。但是,我还希望能够进行逻辑测试并根据页面中的各种状态在字段中输入不同的值。
我知道我可以使用 Selenium 来实现此目的,但是有其他选择吗?也许是一个纯 JavaScript 解决方案?
例如,如果我能做到这一点,那就太好了:
$('#someButton').click();
if (parseInt($('#someDiv').text()) > x) {
$('#someField').val(123);
someCounter++;
}
$('#submitButton').click();
Run Code Online (Sandbox Code Playgroud)
即使我可以将自定义 JavaScript 注入到网页中……那也可以工作。
javascript ×5
ruby ×2
algorithm ×1
angularjs ×1
automation ×1
combinations ×1
debugging ×1
flash ×1
foreign-keys ×1
metadata ×1
mysql ×1
node.js ×1
permutation ×1
php ×1
recursion ×1
templating ×1
upload ×1
uploadify ×1
xml ×1