我正在考虑在DOM中嵌入任意JSON,如下所示:
<script type="application/json" id="stuff">
{
"unicorns": "awesome",
"abc": [1, 2, 3]
}
</script>
Run Code Online (Sandbox Code Playgroud)
这类似于可以在DOM中存储任意HTML模板以供以后与JavaScript模板引擎一起使用的方式.在这种情况下,我们以后可以检索JSON并使用以下方法解析它:
var stuff = JSON.parse(document.getElementById('stuff').innerHTML);
Run Code Online (Sandbox Code Playgroud)
这有效,但这是最好的方法吗?这是否违反任何最佳做法或标准?
注意:我不是在寻找在DOM中存储JSON的替代方法,我已经确定这是我遇到的特定问题的最佳解决方案.我只是在寻找最好的方法.
我在删除<h1>标记之后的换行符时遇到问题,因为每次打印时,它都会在它之后直接添加换行符,所以像这样<h1>Hello World!</h1> <h2>Hello Again World!</h2>打印出来:
Hello World!
Hello Again World!
Run Code Online (Sandbox Code Playgroud)
我不确定我需要在CSS中更改哪些标签,但我希望它与填充或边距有关
如果可能的话,我也想保持垂直填充.
我正在努力完成一个项目.我正在使用用户模型.当我注册一切似乎没问题.但是当我尝试签署同一个成员时,我收到了这个错误.
我们很抱歉,但有些不对劲. heroku日志文件显示错误为:
BCrypt::Errors::InvalidHash (invalid hash):
app/controllers/sessions_controller.rb:8:in `create'
Run Code Online (Sandbox Code Playgroud)
my *sessions_controller*是:
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_path
end
end
Run Code Online (Sandbox Code Playgroud)
和用户模型是:
class User < ActiveRecord::Base
attr_accessible :email, :name, :nickname,:password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save { |user| user.nickname = nickname.downcase }
before_save :create_remember_token
....validations......
private …Run Code Online (Sandbox Code Playgroud) 我在MySQL数据库中有一个日期时间字段,希望将结果输出到最近的小时.
例如2012-04-01 00:00:01应该读2012-04-01 00:00:00
我想以跨浏览器的方式使用jQuery和AJAX实现导航历史记录.我的方法是使用window.history.pushState并回退到/#!/url不支持的浏览器中的哈希URL window.history.pushState.
例如:
<a href="/home">home</a>
<a href="/about">about</a>
<a href="/contact">contact</a>
Run Code Online (Sandbox Code Playgroud)
在支持的浏览器window.history.pushState,点击这些链接之一,应该没有刷新页面更改地址http://domain.com/home,http://domain.com/about等.当浏览器不支持window.history.pushState,就应该使用片段标识符,即:http://domain.com/#!/ home,http://domain.com/#!/about.
更新:根据这里的反馈,我实现了Ajax SEO(git),它使用
旧的浏览器回退的HTML5历史API的jQuery地址/#!/url.
我正在尝试构建一个我写过的自定义gem,client_package但它失败了.
我的目录结构如下所示:
client_package
Gemfile
Gemfile.lock
client_package.gemspec
Rakefile
Readme.md
.gitignore
.git
...git files...
lib
client_package.rb
client_package
version.rb
api.rb
...more...
Run Code Online (Sandbox Code Playgroud)
我client_package.gemspec看起来像这样:
# encoding: UTF-8
require File.expand_path('../lib/client_package/version', __FILE__)
Gem::Specification.new do |s|
s.name = 'client_package'
s.version = ClientPackage::VERSION
s.platform = Gem::Platform::RUBY
s.files = `git ls-files`.split('\n')
s.executables = `git ls-files -- bin/*`.split('\n').map{ |f| File.basename(f) }
s.require_paths = ['lib']
# also have s.authors, s.email, s.homepage, s.summary, s.description
s.add_dependency 'httparty'
s.add_dependency 'json'
end
Run Code Online (Sandbox Code Playgroud)
并且我的所有文件都已提交,并且git状态是干净的.
从顶层client_package目录中,我运行gem build client_package.gemspec并得到此错误:
ERROR: While …Run Code Online (Sandbox Code Playgroud) 从我的在线搜索中,我发现了几十个基于Web的MongoDB GUI,以及一个用于MacOS的本机桌面应用程序和一个用于Windows的应用程序.但是我找不到Linux的桌面GUI.我正在寻找类似于mysql-query-browser的东西,但是对于MongoDB.谁知道什么?
(如果重要,我正在使用Kubuntu 11.04)
在这里,我发布了一个演示http://jsfiddle.net/LxYMv/1/.
正如你所看到的那样<body>获得margin-top:距离顶部div 10px,因此<html>黑色背景泄露出来.这是否意味着我不能给顶级div一个积极的优势?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,select,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,button,caption,cite,code,dfn,em,input,optgroup,option,select,strong,textarea,th,var{font:inherit}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}
html{background:black}
body{background:white}
</style>
</head>
<body>
<div style="margin-top:10px;background:red;height:100px">Here the top div begins</div>
<div style="height:800px">A long long div</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 更新:这仅适用于jQuery 1.8及更低版本.这是在jQuery 1.9中修复的.
这是我的最小jsfiddle示例:http://jsfiddle.net/8fuEJ/.我正在使用谷歌浏览器,如果这有所作为.
我有一个复选框:
<input type="checkbox" id="wtf">
Run Code Online (Sandbox Code Playgroud)
我有一个jquery事件处理程序:
$('#wtf').click(function(ev) { alert(this.checked); });
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.当我单击复选框时,我首先看到复选标记出现,然后是警告"true"(按此顺序).当我再次点击它时,我看到复选标记消失,然后警告"false".
当我以编程方式触发click事件时出现问题.像这样:
$('#wtf').click(function(ev) { alert(this.checked); });
$('#wtf').click();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,首先我看到警告"false"(复选标记仍然不可见),然后在解除警报后,出现复选标记.
为什么这里的顺序不同?
另请注意,如果我使用事件处理程序change,它会按预期工作.
$('#wtf').change(function(ev) { alert(this.checked); });
$('#wtf').click();
Run Code Online (Sandbox Code Playgroud)
在这里,我看到复选标记出现,然后警告"true".
使用bundler,您可以在以下位置执行以下操作Gemfile:
gem 'my_gem', :git => 'git@github:me/my_gem.git'
Run Code Online (Sandbox Code Playgroud)
这将在该repo中构建gem并安装它.效果很好.是否可以使用命令行gem工具执行类似的操作?像这样的东西?
gem install my_gem --git="git@github:me/my_gem.git"
Run Code Online (Sandbox Code Playgroud)
显然这个命令不起作用,但它有类似的东西吗?我知道我可以克隆回购,运行a gem build my_gem.gemspec然后a gem install my_gem-1.2.3.gem.但我想知道是否有一个直接的单行程隐藏在幕后的这些中间步骤.