小编Hel*_*ios的帖子

Ajax GET with Reagent

我正在从我的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)

ajax clojurescript reagent

10
推荐指数
1
解决办法
3475
查看次数

使用Safari不需要的自动滚动功能可以使输入焦点居首

我有这个页面:

    <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)

html css safari mobile-safari ios

7
推荐指数
1
解决办法
547
查看次数

Makefile:与子目录同名的规则被忽略

这是我的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.

makefile gnu-make

4
推荐指数
1
解决办法
1538
查看次数

Sinatra路线冲突

在我的申请中,我有以下两条路线

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

routes sinatra

0
推荐指数
1
解决办法
1300
查看次数

标签 统计

ajax ×1

clojurescript ×1

css ×1

gnu-make ×1

html ×1

ios ×1

makefile ×1

mobile-safari ×1

reagent ×1

routes ×1

safari ×1

sinatra ×1