小编Ada*_*tle的帖子

CF9 EntityDelete:如何删除实体

如果我有一个实体数组,最简单的方法是删除整个实体数组(或者这样说,整个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)

但那不起作用......

coldfusion hibernate coldfusion-9

5
推荐指数
2
解决办法
962
查看次数

如何使用Exchange Web Services 2010托管API获取文件夹大小?

我正在尝试使用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就不存在了.

有关如何获取用户邮箱总大小的任何想法?我吠叫错了树吗?

.net c# exchange-server exchangewebservices ews-managed-api

5
推荐指数
1
解决办法
6049
查看次数

将Codebird Twitter API代理从PHP转换为CFML

我正在使用一个不错的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)

php twitter coldfusion cfml

5
推荐指数
1
解决办法
752
查看次数

开玩笑嘲笑测试之间出血,重置并不能解决问题

测试两个模块,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)

javascript testing jestjs

5
推荐指数
1
解决办法
1334
查看次数

Fusebox框架的未来

好老的Fusebox是我的第一个框架,我仍然非常喜欢它.从PHP版本开始,目前使用最新的CFML版本.

但时间流逝,我想知道:也许我应该切换到另一个框架?好吧,我不想在这里开始圣战.我只是想知道继续使用FB的优点和缺点.

说,我认为没有XML控制器是非常好的想法,并迈向未来.或者也许我错了,这不是因为我应该专注于Mach-II或者Model-Glue或......(输入你最喜欢的)?

但是PHP怎么样?似乎它已经过去了一段时间.Symfony,CakePHP,Zend等现在看起来好多了,而且发展很快.

因此,比较方面的粗略列表如下:

  1. 花在开发和维护上的时间.对我来说FB在这里似乎很好.
  2. ORM集成.目前我正在使用自己的组件(顺便说一句,很惊讶在cf9预览中看到非常相似的语法),但担心他们的性能.
  3. 整体应用性能.缓存?"解析"文件仍然足够好?
  4. 与其他产品集成.例如,使用单元测试工具 - 有没有人有这方面的经验?

任何想法和意见都表示赞赏.谢谢.

php coldfusion comparison frameworks

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

在飞行中的单选按钮上刷新jQueryMobile样式

我试图重新设计一组垂直按钮,我添加到其中一个的新主题显示,但我从另一个/其余部分删除的主题不会消失.

我的目标是更改所选单选按钮的主题(相关控件,无论如何),使其在选中时更加突出.

<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()- 即使这没有达到预期的效果.

第一次单击一个,它具有所需的效果:

国家2

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

国家3

我也尝试$("#showChooser").listview("refresh") …

jquery-mobile

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

如何在Flex 3.5应用程序中在运行时更改应用程序背景颜色?

我有一个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)

我尝试过使用绑定,对于backgroundColorbackgroundGradientColors属性:

<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一样.

在运行时更改主应用程序背景颜色的最佳方法是什么?

apache-flex flex3 actionscript-3

3
推荐指数
1
解决办法
4128
查看次数

CFScript中的动态SQL

我需要在我的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注入的安全性?

sql coldfusion sql-injection

3
推荐指数
1
解决办法
2227
查看次数

在jQuery Mobile中使用图标获取任何控件的扩展字符

我以前曾经为这个应用程序处理并解决了这个问题,但我不记得究竟是什么修复了它.我唯一记得做的就是下载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)

有任何想法吗?

jquery jquery-mobile

3
推荐指数
1
解决办法
1074
查看次数

如何在nvd3.js堆积区域图表中添加"平均"线?

我有一个使用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才能执行此操作?

javascript d3.js nvd3.js

3
推荐指数
1
解决办法
8157
查看次数