如果我有一个实体数组,最简单的方法是删除整个实体数组(或者这样说,整个ORM表)?我有:
<cfset allUsers = EntityLoad("User", {}, false)/>
Run Code Online (Sandbox Code Playgroud)
现在要删除所有实体,我会使用某种循环吗?如果是这样,我如何访问单个实体主键?我试过了:
<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) />
Run Code Online (Sandbox Code Playgroud)
但那不起作用......
我正在尝试使用EWS 2010托管API来获取用户邮箱的总大小.我还没有找到一个Web服务方法来获取这些数据,所以我想我会尝试计算它.我在另一个网站上发现了一个关于使用EWS 2007查找邮箱大小的看似适用的问题,但要么我不理解它要求我做什么,要么该方法不适用于EWS 2010.
在代码洞察中,我能够编写我认为是一种递归遍历文件夹结构的方法,并导致收件箱内所有文件夹的总计:
private int traverseChildFoldersForSize(Folder f)
{
int folderSizeSum = 0;
if (f.ChildFolderCount > 0)
{
foreach (Folder c in f.FindFolders(new FolderView(10000)))
{
folderSizeSum += traverseChildFoldersForSize(c);
}
}
folderSizeSum += (int)f.ManagedFolderInformation.FolderSize;
return folderSizeSum;
}
Run Code Online (Sandbox Code Playgroud)
(假设给定文件夹中的文件夹不超过10,000个.这是一个安全的赌注...)
不幸的是,这不起作用.
我正在用这段代码启动递归:
Folder root = Folder.Bind(svc, WellKnownFolderName.Inbox);
int totalSize = traverseChildFoldersForSize(root);
Run Code Online (Sandbox Code Playgroud)
但抛出了Null引用异常,基本上说这[folder].ManagedFolderInformation是一个空对象引用.
为清楚起见,我还试图获得根文件夹的大小:
Console.Write(root.ManagedFolderInformation.FolderSize.ToString());
Run Code Online (Sandbox Code Playgroud)
其中引发了相同的NRE异常,所以我知道一旦你在目录树中达到某个深度,ManagedFolderInformation就不存在了.
有关如何获取用户邮箱总大小的任何想法?我吠叫错了树吗?
我正在使用一个不错的Twitter API包装器:codebird-js ; 并且它包含一个代理,如果您需要发出CORS AJAX请求(我这样做),因为Twitter的API不允许CORS.
旁白: Twitter可以通过这种代理吗?我必须假设,因为Codebird 列在他们推荐的库中.
代理通过开发人员的一个服务器,这很好,但我注意到它偶尔会下降几个小时,有时一整天.一旦我的应用程序投入生产,这是不可接受的,所以我需要自托管代理以获得更多控制权.
幸运的是,它们也为代理提供了源代码.不幸的是,PHP不是一个选择.所以我试图将它移植到CFML,这是我当前最好的选择(我也可以考虑Node.js和Ruby,虽然我对两者都不太熟悉,这就是为什么我现在选择了CFML )
基本上它归结为我试图将此脚本移植到CFML.以下是我到目前为止所做的,但我遇到的问题我将在代码下面描述.
<cfscript>
try{
header(name="Access-Control-Allow-Origin", value="*");
header(name="Access-Control-Allow-Headers", value="Origin, X-Authorization");
header(name="Access-Control-Allow-Methods", value="POST, GET, OPTIONS");
method = cgi.request_method;
if (method == 'OPTIONS'){
abort;
}
path = 'https://api.twitter.com' & cgi.path_info;
headers = [{name="Expect", value=""}];
req_headers = getHTTPRequestData().headers;
req_body = getHTTPRequestData().content;
if (isBinary(req_body)){
req_body = charsetEncode(req_body, "UTF-8");
}
if (structKeyExists(req_headers, 'X-Authorization')){
arrayAppend(headers, { name='Authorization', value=req_headers['X-Authorization'] });
}
response = http_wrapper(method, path, headers, req_body);
code = val( …Run Code Online (Sandbox Code Playgroud) 测试两个模块,helper其中使用render. 有可能render抛出,所以我在 中处理它helper,并且我希望进行测试以确保其按预期工作。
当我最初编写测试时,我在测试本身中编写了该测试所需的内容,包括模拟,使用jest.doMock. 一旦所有测试通过,我想重构以尽可能共享模拟。
所以这段代码效果很好:
test('throws', async () => {
jest.doMock('./render', () => jest.fn(async () => { throw new Error('mock error'); }));
const helper = require('./helper');
expect(async () => { helper(); }).rejects.toThrow('mock error');
expect(log_bug).toHaveBeenCalled();
});
test('succeeds', async () => {
jest.doMock('./render', () => jest.fn(async () => 'rendered result'));
const helper = require('./helper');
expect(await helper()).toEqual(true); //helper uses rendered result but doesn't return it
expect(log_bug).not.toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
然而,这些并不是唯一的两个测试,到目前为止,模拟渲染的大多数其他测试都希望它返回成功状态。我尝试将成功用例重构为文件,如下__mocks__/render.js所示:
// __mocks__/render.js …Run Code Online (Sandbox Code Playgroud) 好老的Fusebox是我的第一个框架,我仍然非常喜欢它.从PHP版本开始,目前使用最新的CFML版本.
但时间流逝,我想知道:也许我应该切换到另一个框架?好吧,我不想在这里开始圣战.我只是想知道继续使用FB的优点和缺点.
说,我认为没有XML控制器是非常好的想法,并迈向未来.或者也许我错了,这不是因为我应该专注于Mach-II或者Model-Glue或......(输入你最喜欢的)?
但是PHP怎么样?似乎它已经过去了一段时间.Symfony,CakePHP,Zend等现在看起来好多了,而且发展很快.
因此,比较方面的粗略列表如下:
任何想法和意见都表示赞赏.谢谢.
我试图重新设计一组垂直按钮,我添加到其中一个的新主题显示,但我从另一个/其余部分删除的主题不会消失.
我的目标是更改所选单选按钮的主题(相关控件,无论如何),使其在选中时更加突出.
<div data-role="content">
...
<fieldset data-role="controlgroup" id="showChooser">
<legend><h3>Which show are you attending?</h3></legend>
<input type="radio" name="activeShow" id="activeShow1" value="1" />
<label for="activeShow1">
<h2>Choice 1</h2>
<p>03/25/2012 - 03/27/2012</p>
</label>
<input type="radio" name="activeShow" id="activeShow2" value="2" />
<label for="activeShow2">
<h2>Choice 2</h2>
<p>03/25/2012 - 03/27/2012</p>
</label>
<input type="radio" name="activeShow" id="activeShow3" value="3" />
<label for="activeShow3">
<h2>Choice 3</h2>
<p>03/25/2012 - 03/27/2012</p>
</label>
...
</fieldset>
...
</div>
Run Code Online (Sandbox Code Playgroud)
这会导致显示以下列表:
基州http://img.skitch.com/20120319-8wfa4ep6txwdtgjy475k6b5c3k.png
所以,点击其中一个,我正在运行此代码:
$('#showChooser input:radio').click(function(e) {
$("#showChooser label").attr('data-theme','c');
$(this).next().attr('data-theme','e');
$("#settings").page();
});
Run Code Online (Sandbox Code Playgroud)
理论上,第一行应该将它们全部重置为主题"C"的基本状态,然后第二行将突出显示所选项目.我可以逐步查看这些HTML更改,因此很明显接下来需要发生的事情是jQuery Mobile重新解析和更新显示.
请注意最终尝试刷新整个页面.page()- 即使这没有达到预期的效果.
第一次单击一个,它具有所需的效果:

但后续点击似乎不会突出显示以前选定的任何行:

我也尝试$("#showChooser").listview("refresh") …
我有一个Flex 3.5应用程序,它将用于多种用途,并且作为我想要指示应用程序所处模式的视觉更改的一部分,我想要更改其背景颜色.
目前,应用程序标记如下所示:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:com="ventures.view.component.*"
xmlns:views="ventures.view.*"
layout="absolute"
preinitialize="onPreInitialize()"
creationComplete="onCreationComplete()"
applicationComplete="onApplicationComplete()"
click="onClick(event)"
enabled="{(!chainController.generalLocked)}"
backgroundGradientColors="[0xFFFFFF, 0xFFFFFF]"
>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用绑定,对于backgroundColor和backgroundGradientColors属性:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
...
backgroundColor="{app_background_color}"
>
Run Code Online (Sandbox Code Playgroud)
-和-
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
...
backgroundGradientColors="{app_background_color}"
>
Run Code Online (Sandbox Code Playgroud)
但是对于前者的绑定是不允许的,而后者则有一个警告:
数据绑定将无法检测到"app_background_color"的分配.
我也跑过这个页面似乎表明我可以用这个setStyle()方法来做,但文档似乎表明这个方法只适用于组件,而不是主画布.
我想我可以<mx:Canvas></mx:Canvas>为此专门包装所有内容,但这似乎很浪费 - 就像在HTML中的Div-itis一样.
在运行时更改主应用程序背景颜色的最佳方法是什么?
我需要在我的SQL查询中添加if条件.我想出了这个解决方案,但它不起作用,我不知道为什么.
local.platformId = arguments.platformId ? "AND platforms.id = #arguments.platformId#" : "";
local.pages = new Query(dataSource=variables.wheels.class.connection.datasource);
local.pages.setSQL
("
SELECT COUNT(games.id) AS totalRecords
FROM games
INNER JOIN platforms ON games.platformId = platforms.id
WHERE 0=0
:platform
");
local.pages.addParam(name="platform", cfsqltype="CF_SQL_VARCHAR", value=local.platformId);
local.pages = local.pages.execute().getResult();
Run Code Online (Sandbox Code Playgroud)
我得到一个错误: You have an error in your SQL syntax; check ... near ''AND platforms.id = 1' ''' at line 6
任何想法如何解决这个限制仍然确保SQL注入的安全性?
我以前曾经为这个应用程序处理并解决了这个问题,但我不记得究竟是什么修复了它.我唯一记得做的就是下载jQuery,jQuery Mobile等的新副本; 但我已经再次这样做了,并没有解决问题.

此字符"Â"显示每个具有图标的控件,例如带有">"的列表视图,以及此处显示的按钮.
当jQM正在修改它时,该字符实际上被添加到页面的源中(请参阅span内容):
<a data-icon="maps" id="maps-button" data-role="button" target="_blank" href="http://example.com/map/" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="a" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-icon-left ui-btn-up-a">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Maps</span>
<span class="ui-icon ui-icon-maps ui-icon-shadow">Â </span>
</span>
</a>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个使用NVD3.js的堆积区域图表:在这里工作jsfiddle
var volumeData = [{"key":"Hit","values":[[1.3781628E12,12],[1.3782492E12,9],[1.3783356E12,9],[1.378422E12,4],[1.3785084E12,2],[1.3785948E12,3],[1.3786812E12,6],[1.3787676E12,5],[1.378854E12,1],[1.3789404E12,5],[1.3790268E12,1],[1.3791132E12,3],[1.3791996E12,0],[1.379286E12,2],[1.3793724E12,0]]},{"key":"Miss","values":[[1.3781628E12,3],[1.3782492E12,3],[1.3783356E12,1],[1.378422E12,12],[1.3785084E12,4],[1.3785948E12,7],[1.3786812E12,10],[1.3787676E12,13],[1.378854E12,14],[1.3789404E12,8],[1.3790268E12,5],[1.3791132E12,2],[1.3791996E12,3],[1.379286E12,11],[1.3793724E12,6]]}];
(function(data){
var colors = d3.scale.category20();
keyColor = function(d, i) {return colors(d.key)};
var chart;
nv.addGraph(function() {
chart = nv.models.stackedAreaChart()
.x(function(d) { return d[0] })
.y(function(d) { return d[1] })
.color(keyColor);
chart.xAxis.tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
chart.yAxis.tickFormat(d3.format('d'));
d3.select('#graph svg')
.datum(data)
.transition().duration(0)
.call(chart);
//nv.utils.windowResize(chart.update);
return chart;
});
})(volumeData);
Run Code Online (Sandbox Code Playgroud)
我想做的是在可见x范围内为每个系列添加"平均"线.我可以毫不费力地计算每个系列的平均值,我只是不知道如何让这条线显示在图表上.
是否可以使用nvd3.js,或者我必须下载到d3才能执行此操作?
coldfusion ×4
javascript ×2
php ×2
.net ×1
apache-flex ×1
c# ×1
cfml ×1
coldfusion-9 ×1
comparison ×1
d3.js ×1
flex3 ×1
frameworks ×1
hibernate ×1
jestjs ×1
jquery ×1
nvd3.js ×1
sql ×1
testing ×1
twitter ×1