问题标签 [coldbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
coldfusion - 从具有一对多关系的查询中填充模型
我有两张桌子:
我想做的是从两个表中获取信息:
然后使用 Coldbox 使用surveyTemplate
查询数据填充我的模型:
这是可行的,但是,该模型仅填充了一个问题。我正在测试的调查模板包含三个问题。
property name
我试图在我的模型中正确设置一个以使用fieldtype="one-to-many"
,但这似乎没有什么不同。
虽然 Coldbox 的模型文档总体上非常好,但我无法找到答案,这可能意味着我在实现这一点时偏离了轨道。
任何见解将不胜感激。
unit-testing - 使用需要抛出和不抛出的 mockbox 模拟函数调用
我正在使用 Mockbox 编写测试并有一个我需要测试的函数,看起来像这样
我正试图围绕如何测试placeOrder
和模拟print
调用,以便它第一次而不是第二次抛出异常。我认为,关键是每次传入的参数都会不同,但如果我不确定它们,它就不会正确映射到我的模拟并且不会抛出异常。
到目前为止,这是我的测试代码:
我在文档中知道你可以让它在后续调用中返回不同的结果,但在这种情况下,我需要它抛出,然后不抛出,看起来当你模拟一个方法时,它对于你是否在问是相当确定的它扔还是不扔。
cfml - 为什么 ColdBox 应用程序中 renderView() 的 cacheTimeout 设置没有效果?
我正在开发一个带有模块的 ColdBox 应用程序,并希望使用它的缓存功能来缓存视图一段时间。
我尝试通过将以下信息添加到我的 Cachebox.cfc 来设置默认缓存配置,并cacheTimeout
从上面的代码中删除:
虽然这对缓存没有任何影响。我还尝试将上面的配置添加到我的 Coldbox.cfc 中。
即使我通过 CommandBox via 创建了一个全新的测试应用程序coldbox create app MyApp
,然后仅将 Cachebox.cfc 中的缓存设置为一分钟,viewCaching = true
在 Coldbox.cfc 中设置并在 Main.cfc 中设置event.setView( view="main/index", cache=true )
,它也无法按预期工作。
无论我做什么,视图总是被缓存至少 5 分钟。
有什么我想念的吗?
javascript - 通过 AJAX 在表单输入更改上提交 Coldbox RC 范围并返回字符串以显示在页面上
每次更改选择框值时,我都需要通过 AJAX 传递表单变量,并从 AJAX 调用中获取返回的字符串以显示在页面上。情况如下:
我为一组合规性规则构建了一个由用户动态构建的表单。这允许用户有多个选择框来生成逻辑语句,如下所示:
我编写了一个函数,在提交表单后将此逻辑语句作为字符串返回,但想在提交之前在表单页面上动态填充一个 div(#logicblock),以便用户可以在提交之前验证逻辑信息进入我们的数据库。
我尝试使用以下内容:
...但这并没有正确地将 RC 范围传递到我的模型中。我已经搜索过,但找不到一种对我有意义的方法,可以将整个表单范围发送到一个返回值以在页面上显示的方法中。
jenkins - ColdFusion TestBox Ant 错误
我的目标是在 Jenkins 上运行 TestBox 脚本。但是使用
https://testbox.ortusbooks.com/content/running_tests/ant_runner.html
中的 Ant 脚本
作为模板,我得到了这个错误
BUILD FAILED C:\public\data\trunk\AutomatedTesting\Box_Unit_Tests\build.xml:38:对实体“bundles”的引用必须以 ';' 结尾 分隔符。
使用此脚本:
有什么想法吗?
module - 冷箱模块事件在 renderLayout 调用中死亡
tl;dr:在主机应用程序中renderLayout(layout="myLayout", view="alpha/bravo/viewFile")
解析alpha
为模块名称而不是包名称,即使代码执行是在包而不是模块中。
直接运行处理程序或通过模块调用处理程序时,如何使路径分辨率保持一致runEvent
?
我在 CB google 组上发布了这个,但后来认为最好在这里问。
这里的工作示例:https ://github.com/jinglesthula/cbModuleExample
如果您运行安装(我 .gitignored 冷箱文件夹),然后cd
进入该/app
文件夹,server start --rewritesEnable
您可以访问http://127.0.0.1:<whatever port>/example/admin/test/ajax
以查看它的运行情况。
从例子:
/app/modules_app/example/handlers/admin/test.cfc -> ajax()
来电runEvent("admin.test.ajax")
/app/handlers/admin/test.cfc -> ajax()
调用`renderLayout(layout = "layout.div", view = "admin/test/ajax")
"admin/test/ajax"
通常解析为/app/views/admin/test/ajax.cfm
,但在这种情况下,它解析为/app/modules_app/admin/views/test/ajax.cfm
.
您可以注释掉第 18 行并取消注释第 19 行/modules_app/example/admin/handlers/test.cfc
以查看解决方法。
您也可以/admin/test/ajaxDirect
在浏览器中查看renderLayout()
非工作示例中的调用是否正确。
注意:我this.viewParentLookup = true
的 ModuleConfig.cfc 中有。我尝试重新加载模块并将其设置为 false,我得到了相同的结果。
module - 冷箱模块名称与处理程序包冲突
我有一个 ColdBox 单体,我们将迁移到模块中。目录结构是
我正在尝试加载结构如下的外部模块
很标准。/admin
我们在和/user
handlers 文件夹中有更多内容;这只是一个示例。
我们/myapp/admin/product/index
仍然需要从整体运行,但将person.cfc
处理程序移动到.../myappModules/admin/handlers/
.
问题是当我this.entryPoint = "/admin";
在管理ModuleConfig.cfc
文件中指定时,我尝试/myapp/admin/person/index
在浏览器中访问并陷入重定向循环。
有没有办法让 CB 路由首先查看主机应用程序/handlers
并回退到加载的模块?(或先尝试模块并回退到/handlers
?)
注意:这些模块将位于外部位置,因为它们将由其他应用程序共享并被放置在单独的存储库中。不确定这在命名方面是否有任何区别,因为我认为即使我们从其他仓库安装它们也会存在相同的问题/modules
coldfusion - ColdBox:在组件中找不到方法 _actionExists
运行 ColdBox 4.2,我们在重新初始化后看到此错误,但仅在一个特定的处理程序 cfc 上。如果我们重新初始化几次,它最终会消失,这听起来像是一种竞争条件。
我们想直接做extends="coldbox.system.EventHandler"
而不是让框架混合处理程序方法,但后来我们开始看到另一个错误:
错误构建:myApp.handlers.admin.report -> init 函数的 CONTROLLER 参数是必需的,但未传入。带有构造函数参数:{}
类似地,如果我们重新初始化几次,这个错误就会消失,直到我们得到一个在请求中途进入之前完成烘焙的错误。
我们无法在非产品系统上重现这一点,可能是由于负载大大降低。
有没有人遇到过类似的事情并想出了一种在负载下优雅地重新启动框架的方法?
coldbox - 参考包括 ColdBox 模块中的文件
我创建了一个具有目录的模块foo
,该includes
目录又包含一个js
目录,其中有一个名为edit.js
.
我在模块视图中尝试了以下操作:
但我得到一个404。
引用模块的静态资产的正确方法是什么?
coldbox - ColdBox 模块接口支持?
有没有办法为任何主机应用程序都可以实现的模块创建接口?
我们有几个应用程序有很多常见的代码,我们希望将它们重构为模块,但有时模块可能需要调用runEvent
或setNextEvent
由于独特的行为和存在于宿主应用程序中的处理程序方法执行。
我可以在模块中指定一个合同,如“主机应用程序必须实现以下处理程序:'admin.foo'、'admin.bar'、...”吗?
我猜有一个模块加载拦截,我可以手动执行此操作,但我想知道是否有约定,所以我可以将列表放在某个地方,而不是将样板代码复制粘贴到每个模块中。