小编diz*_*tar的帖子

VueJS 服务器端渲染:计算属性没有看到存储中的变化

我正在尝试让服务器端渲染在 VueJS 中工作。

我一直在关注官方文档,并且正在尝试使用 axios 使此示例正常工作。端点是正确的,数据确实显示在mutation.

https://ssr.vuejs.org/guide/data.html

我也找到了这个页面并尝试了其中的大部分示例,其中包括使用 getter、vuex mapState、mapGetter 等:

vue.js 2 如何从 vuex 中观察存储值

这是store/index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

import { fetchPage } from './api'

export function createStore () {
    return new Vuex.Store({
        strict: true,

        state: () => ({
            res: {}
        }),

        actions: {
            actXY ({ commit }, page) {
                fetchPage('homepage').then((item) => {
                    commit('mutXY', { page, item });
                }).catch(error => {
                    throw new Error(`Store ${error}`);

                })
            }
        },

        mutations: …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js server-side-rendering vuex

8
推荐指数
1
解决办法
1221
查看次数

如何在ClojureScript中创建Button元素?

我正在尝试在ClojureScript中创建新元素,但它似乎不起作用.我将通过展示我在这里找到的一个例子来启动.

(let [dom6238 (.createElement js/document "a")]
    (.setAttribute dom6238 "href" "http://somelink")
    (set! (.-innerText dom6238) "Text")
    dom6238)
Run Code Online (Sandbox Code Playgroud)

他们说的转换为:

var dom54535 = document.createElement("a");
    dom54535.setAttribute("href", "http://somelink.com");
    dom54535.innerText = "Hello there";
return dom54535
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错的话,这应该会生成一个HTML代码段,如下所示:

[:a.anchor.silly {:href "http://somelink.com"} "Text"]
Run Code Online (Sandbox Code Playgroud)

我在.cljs文件中有这个:

(defn create-button []
  (let [a (.createElement js/document "a")]
    (.setAttribute a "href" "http://somelink")
    (set! (.-innerText a) "Text")
    a))

(defn init []
  (let [a (.getElementById js/document "write-action")
        b (.getElementById js/document "button-field")]
    (set! (.-innerHTML a)
          "field a")
    (set! (.-innerHTML b)
          (create-button))))
Run Code Online (Sandbox Code Playgroud)

这只是生成(按钮字段在HTML上的写入操作之上):

http://somelink/
field a
Run Code Online (Sandbox Code Playgroud)

所以没有锚标签,只有文本.


我试图做的是创建一个按钮,所以我有这个代码: …

clojure clojurescript

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

尝试为Clojure/Korma/PostgreSQL站点创建用户登录

我完全被困在哪里开始为我正在建立的Clojure网站获取登录区域(为了好玩).

我已经查看了几个资源,我将在下面发布,无情地复制/粘贴代码,而我能得到的最接近的资源是以下两种情况之一:

登录页面进行登录,但是说登录失败了,据我所知,登录匹配.

或者我得到这个错误:在multimethod' - > sql'中没有方法用于调度值:null

我不知道如何解释上述错误:这是指定我需要一个多方法,或者其指定我需要检查空?null要求根本没有意义.我不是真的在问,但是如果有人想要解释,这很好.

我通过比较原始非散列数据的结果与选择查询来测试输出,我在这个主题上经历了5个变体,使用从页面到页面调用到创建新的defpartials,多方法,defn的所有内容等

我使用的来源(不幸的是,我不能列出所有这些都是第一次发布的海报):

这个使用Clojure - > Korma - > PostgreSQL,但代码似乎不适用于多个用户?
http://www.vijaykiran.com/2012/01/17/web-application-development-with-clojure-part-2/

这个展示了如何使用Noir和PostgreSQL(是的,我正在使用Noir):https://yogthos.net:11794/blog/23-Novo + tutorial +- + part + 2

4Clojure网站,但那个使用CongoMongo:

Heroku Twitter克隆,但没有提到如何为一个人创建登录,更不用说几个.

我还从O'Reilly Press购买了Programming Clojure,但再一次,没有关于如何创建登录区域的信息.

第一次编辑:我被要求创建一个独立站点的github存储库.这包括在welcome.clj文件,只在login.clj登录区域的形式找到了工作"帐户创建"区域.

我试图得到一些与昨晚相同的错误,并且在我上传文件之前也试图让它工作.我还没有任何合理的起点,因此目前还没有开始实施.我对我提出的解决方案感到非常尴尬,因此我不想发布它们.我从概念上得到了我应该做的事情,但出于某种原因,我似乎无法翻译这一点.这是我的第一个github帐户:我的背景是Python,Scheme a'la SICP,以及我构建的一些Python + PostgreSQL营销程序.

第二次编辑: Ack!我似乎无法完成这项工作......是的,我花了20多分钟(小时)来完成这一项,所以我必须承认我还没有必要的知识来完成这,无论我看到多少来源.我提交了更新的文件以及我尝试的所有奇怪的事情,包括登录框中运行原始SQL的所有变体.我能得到的最接近的是得到它以便我没有得到任何错误,但没有证据表明某人已经登录.非常感谢您的帮助和建议.我肯定会在以后再回到这里.

https://github.com/dt1/noirKormaLogin

postgresql clojure noir korma

6
推荐指数
1
解决办法
1089
查看次数

Clojure:从地图动态创建函数 - 宏的时间?

我有一个像这样开始的函数:

(defn data-one [suser]
    (def suser-first-name
       (select db/firstNames
            (fields :firstname)
            (where {:username suser})))
    (def suser-middle-name
        (select db/middleNames
            (fields :middlename)
            (where {:username suser})))
    (def suser-last-name
         (select db/middleNames
             (fields :lastname)
             (where {:username suser})))
    ;; And it just continues on and on...
        )
Run Code Online (Sandbox Code Playgroud)

当然,我根本不喜欢这个.我在代码库的许多方面都重复了这种模式,我想概括一下.

所以,我想出了以下内容:

(def data-input {:one '[suser-first-name db/firstNames :firstname] 
                      '[suser-middle-name db/middleNames :middlename]
                      '[suser-last-name db/lastNames :lastname]})

(defpartial data-build [data-item suser]
    ;; data-item takes the arg :one in this case
     `(def (data-input data-item)
        (select (data-input data-item)
            (fields (data-input data-item))
            (where {:username suser}))))
Run Code Online (Sandbox Code Playgroud)

这里有几个问题: …

macros refactoring clojure hiccup noir

6
推荐指数
1
解决办法
1297
查看次数

CSS在Compojure/Hiccup中的扩展路径失败

我一直在将一些Noir网站转换为Compojure.

我在这里有一个函数来创建页面的布局:

(defn layout [title & content]
  (html5
   [:head
    [:title "My Site | " title]
    (include-css "css/main.css")
   [:body
    [:header 
     [:h1 (link-to "/" "My Site")]]
    content]))
Run Code Online (Sandbox Code Playgroud)

这是功能和路线:

(defn home-page []
  (layout
   "Home"
   [:div [:p "Home Page"]])))

(defn article-list []
  (layout
   "Article List"
   [:div [:p "Article List"]])))

(defroutes app-routes
  (GET "/" [] (home-page))
  (GET "/article-list" [] (article-list))
Run Code Online (Sandbox Code Playgroud)

当我打开localhost:3000/article-list时,所有CSS规则都可以正常工作.

但是,当我尝试扩展URL路径并将程序更改为:

(defn article-list []
  (layout
   "Article List"
   [:div [:p "Article List"]])))

(defn article-one []
  (layout
   "Article One"
   [:div [:p "Article One"]])))

(defroutes app-routes
  (GET …
Run Code Online (Sandbox Code Playgroud)

clojure compojure hiccup

6
推荐指数
1
解决办法
198
查看次数

在集合上使用部分,reduce -vs-apply

我有这个奇怪的部分演示。这是代码:

首先声明一个向量和一个部分。正如预期的那样, reduce 和 apply 对 vector 上的整数求和a

> (def a [1 2 3 4 5])
> (def p (partial + 10))
> (apply + a)
15
> (reduce + a)
15
Run Code Online (Sandbox Code Playgroud)

现在,使用上的部分应用p和载体a,我得到的总和a+10从局部的,这是有道理的:

> (apply p a)
25
Run Code Online (Sandbox Code Playgroud)

现在,使用(reduce)对我来说毫无意义。哪里55来的?

> (reduce p a)
55
Run Code Online (Sandbox Code Playgroud)

我能想到的最接近的是,(reduce)version 从 1 索引中添加 10 并在将所有内容添加在一起之前忽略零索引:

> (+ (first a) (reduce + (map #(+ % 10) (rest a))))
55
Run Code Online (Sandbox Code Playgroud)

我只是好奇是否有人确切地知道这里发生了什么?我真的不知道我期待什么答案,但我也不明白发生了什么。我不知道为什么我会得到 …

clojure

6
推荐指数
1
解决办法
120
查看次数

PL/pgSQL:更新触发器中 N 列的一般方法?

我正在尝试创建一个函数,该函数将采用通用表并将 N 列转换为大写。我没有找到此类问题的解决方案,但我能够提出以下建议:

create or replace function uc_on_insert()
returns trigger as
$$
declare
p_tbl varchar = TG_TABLE_NAME;
p_sch varchar = TG_TABLE_SCHEMA;
i varchar;
begin
    for i in 

    (select column_name
    from  INFORMATION_SCHEMA.COLUMNS
    where 1=1
    and table_name ilike p_tbl
    and table_schema ilike p_sch
    and data_type ='character varying')

    loop
           execute 'new.' || i || ' = upper(new.' || i || ');';
       return new;
    end loop;

end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

我目前收到此错误:

ERROR:  syntax error at or near "new"
LINE 1: new.c1 = upper(new.c1);
        ^ …
Run Code Online (Sandbox Code Playgroud)

postgresql triggers types dynamic-sql plpgsql

3
推荐指数
1
解决办法
1807
查看次数

如何将元组集合转换为字典?

我有一个生成N元组的迭代器,但在这里我会假装我有3.它们的长度都很均匀.

t1 = (a1, b1, c1)
t2 = (a2, b2, c2)
t3 = (a3, b3, c3)
Run Code Online (Sandbox Code Playgroud)

我想将上面的内容转换成:

d = {a1: [a2, a3], 
      b1: [b2, b3],
      c1: [c2, c3]}
Run Code Online (Sandbox Code Playgroud)

我知道我应该迭代元组并以某种方式将它们压缩成字典,但我几乎被卡住了.

python

3
推荐指数
1
解决办法
361
查看次数

Postgis - 如何让GUI工作?

我开始使用PostGIS in Action.这本书展示了从各种查询创建的一堆整洁的图形,但没有提到如何让这些图形显示.查询工作正常.

我在网上找到的所有教程都显得过时,例如,建议安装不再可用的插件.我知道我错过了一些明显的东西,但我不知道它会是什么.

我正在使用Windows 7,PostgreSQL 9.3,PostGIS 2.1.

UPDATE

非常感谢你们.我决定使用QGIS,它按照承诺工作.很难选择任何一个答案,因为它们既精彩又信息丰富.

postgis

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