我正在从我的Reagent应用程序执行Ajax GET,从数据库加载一些东西.
我不完全确定将这样的ajax调用的结果发送到我的页面的最佳方法是什么,考虑到如果我把它放在一个原子中,那么当原子被解除引用时,Reagent会自动重新渲染一个组件,这意味着我得到了无限的ajax调用序列.
对于一些代码,
(def matches (atom nil))
(defn render-matches [ms]
(reset! matches (into [:ul] (map (fn [m] ^{:key m}[:li m])
(walk/keywordize-keys (t/read (t/reader :json) ms)))))
Run Code Online (Sandbox Code Playgroud)
这个功能基本上创建一个 [:ul [:li "Stuff here"] [:li "And here"]]
我想在我的页面上显示,现在有以下代码.
(defn standings-page []
(GET "/list-matches"
{:handler render-matches})
@matches)
Run Code Online (Sandbox Code Playgroud) 我有这个页面:
<html>
<body>
<div class="app">
<div class="main-panel">
<nav class="navbar"></nav>
<div class="sidenav">
<ul>
<li>First</li>
<li>2nd</li>
<li>3rd</li>
<li>4th</li>
</ul>
</div>
<div class="page-container">
<div class="placeholder">
<ul>
<li>First</li>
<li>2nd</li>
<li>3rd</li>
<li>4th</li>
</ul>
</div>
<input type="text">
</div>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和以下css:
html, body {
height: 100%;
width: 100%;
position: fixed;
overflow: visible; }
.app {
background-color: #f4f5f8;
height: 100%;
overflow-x: hidden;
overflow-y: auto; }
.main-panel {
height: 100%;
display: grid;
grid-template-columns: 210px 1fr;
grid-template-rows: 76px 1fr; }
.navbar {
grid-column: 1 / 3; } …Run Code Online (Sandbox Code Playgroud) 这是我的makefile:
all: first second
second:
@echo "==Building second=="
first:
@echo "==Building first=="
Run Code Online (Sandbox Code Playgroud)
如果存在名为的目录second,则makefile将完全忽略具有相同名称的规则.如果没有,一切正常.
请注意,无论second文件夹是否为Makefile,都会发生这种情况.
我在组织我的项目时遇到了这个问题:我考虑创建一个通用的Makefile,然后在每个目录中调用Makefile.所以对我来说,规则与文件夹的名称相同是很自然的.
解决方案很简单:更改Makefile中的规则名称...但这种行为似乎很奇怪:你对此有什么想法/见解,还有另一种可能的解决方案吗?
我在Ubuntu 12.04.2 LTS下使用Bash 4.2.25中的GNU Make 3.81.
在我的申请中,我有以下两条路线
get '/' do
...
haml :home
end
Run Code Online (Sandbox Code Playgroud)
和
get '/:id' do
@variable = Something.get(params[:id])
somethingelse = @variable.some_method
...
haml :show
end
Run Code Online (Sandbox Code Playgroud)
如果我使用shotgun并执行我的应用程序并访问localhost:9393(shotgun的默认地址和端口),一切正常,即日志中不显示任何错误消息
如果我使用平常运行服务器(也是瘦的安装)ruby app.rb并访问localhost:4567,那么它会抱怨some_methodNilClass 没有方法" ",好像第二条路由后跟空字符串一样id.
在Sinatra文档中,据说路由是按顺序调用的,所以它甚至不应该遇到第二个.我错了吗?
作为测试,我改变了第二条路线,'/:id/show'并且不再有错误.
在这两种情况下(我的意思是同时使用霰弹枪和普通服务器)网站都是完美呈现的,即在/视图中是正确的home.haml而不是show.haml.因此错误仅出现在日志文件中.要讲的真相,@variable.some_method直接在视图中调用,而在浏览时/我收到了错误/show.haml.
怎么办?有什么我不应该再遇到这个错误吗?我应该公然忽视它吗?
编辑:输出和代码的相关部分可以在这里找到:https://gist.github.com/4585374