我是一个坏孩子,并在我的部分模板中使用以下语法来设置局部变量的默认值,如果在渲染部分时未在:locals哈希中显式定义值 -
<% foo = default_value unless (defined? foo) %>
Run Code Online (Sandbox Code Playgroud)
直到最近,这似乎工作正常(当时我无法辨别)未通过的变量开始表现得好像它们被定义为nil(而不是未定义).
正如SO上各种乐于助人的人所指出的,http://api.rubyonrails.org/classes/ActionView/Base.html表示不使用
defined? foo
Run Code Online (Sandbox Code Playgroud)
而是使用
local_assigns.has_key? :foo
Run Code Online (Sandbox Code Playgroud)
我正在尝试修改我的方法,但这意味着要更改很多模板.
可以/我应该提前充电并在所有模板中进行此更改吗?我需要注意什么诡计?我需要多努力地测试每一个?
我想下载一个网页的本地副本,并获取所有的CSS,图像,JavaScript等.
在之前的讨论中(例如,这里和这里,两者都超过两年),通常提出两个建议:wget -p和httrack.但是,这些建议都失败了.我非常感谢使用这些工具中的任何一个来完成任务; 替代品也很可爱.
选项1: wget -p
wget -p成功下载所有网页的先决条件(css,images,js).但是,当我在Web浏览器中加载本地副本时,该页面无法加载先决条件,因为尚未从Web上的版本修改这些先决条件的路径.
例如:
<link rel="stylesheet href="/stylesheets/foo.css" />需要更正指向新的相对路径foo.cssbackground-image: url(/images/bar.png)同样需要进行调整.有没有办法修改,wget -p以便路径正确?
选项2:httrack
httrack对于镜像整个网站来说,它似乎是一个很棒的工具,但我不清楚如何使用它来创建单个页面的本地副本.httrack论坛中有很多关于这个主题的讨论(例如这里),但似乎没有人有防弹解决方案.
选项3:另一个工具?
有些人建议使用付费工具,但我无法相信那里没有免费的解决方案.
非常感谢!
在http://jqueryui.com/demos/sortable/#placeholder中给出的示例中,占位符是拖动任何项目时显示的橙色框.
可以使用placeholder选项调整此元素- 但它只允许您修改元素的类,如下所述:http://jqueryui.com/demos/sortable/#options
我想更多地定制这个元素,例如通过以与向placeholder选项提供函数相同的方式向helper选项提供函数.
我需要改变什么(例如在sortable.js中)才能做到这一点?
https://github.com/pivotal/jasmine/wiki/Matchers上的文档包括以下内容:
expect(function(){fn();}).toThrow(e);
Run Code Online (Sandbox Code Playgroud)
正如在讨论这个问题,下面就无法工作,因为我们想要一个函数对象传递给expect,而不是调用的结果fn()
expect(fn()).toThrow(e);
Run Code Online (Sandbox Code Playgroud)
问题1:以下工作如何?
expect(fn).toThrow(e);
Run Code Online (Sandbox Code Playgroud)
问题2:如果我thing用方法定义了一个对象,doIt下面的工作是否正常?
expect(thing.doIt).toThrow(e);
Run Code Online (Sandbox Code Playgroud)
(2a:如果是这样,有没有办法将参数传递给doIt方法?)
根据经验,答案似乎是肯定的,但我不相信我对js范围的理解足以确定.
谢谢!
我正在将prototype.js用于我的网络应用程序,并且我已经在chrome,safari和firefox上运行了所有内容.我现在正致力于IE8的兼容性.
正如我在IE中调试一样,我注意到有一些javascript事件,我以前在窗口上设置了一个观察者,例如
Event.observe(window, eventType, function () {...});
Run Code Online (Sandbox Code Playgroud)
(eventType可能是"dom:loaded","keypress"等等),它在Chrome/Safari/Firefox中运行良好.然而,在IE中,观察者永远不会发射.
至少在某些情况下,我能得到这个被代替放置在比其他一些观察者的IE浏览器window,例如 document(在的情况下"dom:loaded")或document.body(在的情况下"keypress").但是,这都是反复试验.
是否有更系统的方法来确定这些观察者的位置,以便结果将跨浏览器兼容?
谢谢!
以下javascript在Firefox,Safari,IE和Google Chrome中打开弹出窗口:
window.open("http://google.com", "foo", "toolbar=yes,location=yes,menubar=yes")
Run Code Online (Sandbox Code Playgroud)
但是,在谷歌浏览器中,弹出窗口中不显示工具栏(带有常用的前进和后退按钮等).(在Windows和Mac上都经过测试.)
我怎样才能解决这个问题?我希望用户能够使用他们最熟悉的工具前后导航.
在http://jqueryui.com/demos/sortable/中演示的标准行为中,当您在列表中拖动项目时,将显示占位符元素,其中项目将被删除.
但是,未指示要删除的项目的原始位置.
我想让原始位置可见,直到掉落,以便视觉反馈类似于http://jqueryui.com/demos/上描述的"半透明克隆"选项保留原始位置的方式.可拖动/#视觉反馈
有什么方法可以用sortable做到这一点吗?
谢谢!
我想在网页上有一个按钮,其行为如下:
以下代码适用于Firefox(Mac和Windows),Safari(Mac和Windows)和IE8.(我还没有测试IE6或IE7.)但是,在谷歌浏览器(Mac和Windows)中,后来的点击无法将现有的弹出窗口置于最前面.
如何在Chrome中完成此工作?
<head>
<script type="text/javascript">
var popupWindow = null;
var doPopup = function () {
if (popupWindow && !popupWindow.closed) {
popupWindow.focus();
} else {
popupWindow = window.open("http://google.com", "_blank",
"width=200,height=200");
}
};
</script>
</head>
<body>
<button onclick="doPopup(); return false">
create a pop-up
</button>
</body>
Run Code Online (Sandbox Code Playgroud)
背景:我正在专门针对谷歌浏览器重新提出这个问题,因为我认为我的代码至少解决了其他现代浏览器和IE8的问题.如果有这样做的首选礼仪,请告诉我.
我正在使用jquery UI的对话框小部件在我的Web应用程序中呈现模式对话框.我这样做是通过将所需DOM元素的ID传递给以下函数:
var setupDialog = function (eltId) {
$("#" + eltId).dialog({
autoOpen: false,
width: 610,
minWidth: 610,
height: 450,
minHeight: 200,
modal: true,
resizable: false,
draggable: false,
});
};
Run Code Online (Sandbox Code Playgroud)
在Firefox,Safari和Chrome中,一切正常.但是,在IE 8中打开对话框时,只有div.ui-dialog-titlebar可见 - div.ui-dialog-contents不是.
问题似乎是在现代浏览器中,div.ui-dialog-contents在其样式中设置了特定的高度,即在打开对话框后,生成的HTML是:
<div class="ui-dialog-content ui-widget-content" id="invite-friends-dialog"
style="width: auto; min-height: 198px; height: 448px">...</div>
Run Code Online (Sandbox Code Playgroud)
在IE8中,heightstyle属性设置为零,结果HTML为:
<div class="ui-dialog-content ui-widget-content" id="invite-friends-dialog"
style="min-height: 0px; width: auto; height: 0px">...</div>
Run Code Online (Sandbox Code Playgroud)
要正确设置height(和min-height)样式属性,我需要做什么?
我习惯于通过查询我的rails db script/console.
但在某些情况下,我需要非常小心不要更改数据,所以我希望能够以只读模式打开控制台.
有没有办法做到这一点?
谢谢!
javascript ×4
jquery ×3
jquery-ui ×3
popup ×2
console ×1
dom-events ×1
download ×1
draggable ×1
irb ×1
jasmine ×1
partials ×1
prototypejs ×1
wget ×1