有没有办法动态命名变量?
我需要做的是从输入文件中获取变量名称列表,并使用这些名称创建变量.这可能吗?
就像是:
Variable <dynamic name of variable here> = new Variable(input);
Run Code Online (Sandbox Code Playgroud)
假设我已经处理了Variable类,并且变量的名称包含在一个名为的字符串中strLine.
我正在尝试在我的VBA代码中设置一个颜色的公共const.通常,我可以使用:
Dim BLUE As Long
BLUE = RGB(183, 222, 232)
Run Code Online (Sandbox Code Playgroud)
但是,由于RGB功能,没有公共const的方法.我使用在线转换器将此RGB值转换为Hex,然后我找回了B7DEE8
使用:
BLUE = &HB7DEE8
Run Code Online (Sandbox Code Playgroud)
导致完全不同的颜色.我认为这实际上可能是RGBA颜色,我已经尝试了B7DEE8__并且颜色非常接近(最后一个数字是B8),但我想知道如何实际找到正确的值.
注意:我真的不需要代码将其转换为十六进制,我只需要知道如何找到它,因为我在Excel工作表上使用了五种常量颜色,我想设置它们.
我有jQuery代码,在渲染视图时运行正常.但是,我希望在Ajax请求成功后运行相同的代码.jQuery最初是在文档准备好时执行的,但是我将它移动到它自己的函数中,因此可以调用它.该函数为一些标签元素添加了一些简单的类.这是我到目前为止:
$(function () {
afterLoad();
});
$.ajaxSetup({
success: function () {
afterLoad();
}
});
function afterLoad() {
// code to execute
}
Run Code Online (Sandbox Code Playgroud)
在发出简单的Ajax请求后,这不能正确执行:
$('#ajaxTest').load('<MVC Route>')
Run Code Online (Sandbox Code Playgroud)
部分视图返回正常,但afterLoad()尝试在局部视图之前运行在DOM中.如果我再次执行相同的调用,afterLoad()则运行(在前一个局部视图上),但是它会被新的局部视图覆盖.
有什么想法吗?另一种方法是没问题的,我正在寻找一个是在部署视图的Ajax请求之后运行站点级.js文件.母版页加载了site.js文件,我想在不重新加载文件的情况下执行它的代码(因为它已经被浏览器加载).另外,我不想强迫开发人员对他们的Ajax调用做任何不同的事情,所以它需要使用简单的.load()等等.
我有jQuery代码,它生成一个可聚焦元素数组,并绑定.keydown左右箭头以标记它们.在Chrome,IE和Safari开头preventDefault()或返回错误(这在技术上我不想用,因为我也没有必要结束stopPropagation())防止箭头的默认事件,但在Firefox它没有.
如何防止Firefox中的默认操作?
下面是代码,它按预期工作,除了在Firefox中,除了我的回调之外还会触发默认事件.
$(function () {
var focusables = $(":focusable");
focusables.eq(0).focus();
focusables.eq(0).select();
focusables.each(function () {
$(this).keydown(function (e) {
if (e.which == '37') { // left-arrow
e.preventDefault();
var current = focusables.index(this),
next = focusables.eq(current - 1).length ? focusables.eq(current - 1) : focusables.eq(0);
next.focus();
next.select();
}
if (e.which == '39') { // right-arrow
e.preventDefault();
var current = focusables.index(this),
next = focusables.eq(current + 1).length ? focusables.eq(current + 1) : focusables.eq(0);
next.focus();
next.select();
}
});
});
});
Run Code Online (Sandbox Code Playgroud) 在单元测试方法中,我尝试模拟这样的Cache::remember响应:
Cache::shouldReceive('remember')
->once()
->with('my_key', 120, function() {}) // There are 3 args in remember method
->andReturn([]);
Run Code Online (Sandbox Code Playgroud)
但是我得到这个错误:
消息为“未找到Mockery_0_Illuminate_Cache_CacheManager :: remember的匹配处理程序”的异常“ Mockery \ Exception \ NoMatchingExpectationException”(“ my_key”,120,object(Closure))。该方法是意外的,或者其参数与该方法的预期参数列表不匹配
我不明白为什么会收到此错误,并且在Laravel文档中未找到任何关于此的内容。它说没有匹配项,但似乎匹配。
如何模拟Cache::remember回应?