问题标签 [secretary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
751 浏览

clojure - Clojurescript + Om:等待状态改变,然后做一些事情

我正在尝试制作一个显示食谱的 Clojurescript 应用程序。

相关代码如下(也可作为 gist获得):

我想要完成的事情:

  • 首先使用异步 http 调用获取食谱。我正在使用返回通道的 cljs-http.client
  • 使用秘书库定义路线。在 /random 路线中,我想选择一个随机配方。这只会在数据已被获取并已在应用程序原子中更新时发生。

我现在得到的是浏览器中的无限循环。发生了什么?

另一种选择是将我所有需要首先获取数据的路线包装在一个 go 块中并放在(<! (load-recipes))第一行。

PS:我结束了

0 投票
1 回答
827 浏览

clojure - Clojure 秘书 - 关于 URL 更改的调度

秘书可以根据提交的浏览器 url 调度路由吗,许多 javascript 路由框架的工作方式?我似乎找不到任何将其连接起来的示例。

例如,当您在浏览器的 url 中输入http://myapp.com/#/my/route时,我希望它像我以编程方式输入 (secretary/dispatch! "/my/route") 一样发送复制品

0 投票
2 回答
4282 浏览

clojurescript - 如何在 clojurescript 中获取查询参数?

我正在使用秘书和试剂。这是我的代码:

忽略 :prefix 值(我尝试了“”、“#”并且根本没有设置 :prefix)此代码仅适用于以下路由:

但它不适用于以下路线:

我实际上想要实现的是解析来自朋友的登录失败,如果失败将我重定向到

并向用户显示登录失败消息。我不需要为此使用秘书,任何可以解析查询参数的东西对我来说都可以。

困难的方法是解析我可以得到的查询字符串:

我相信这在某些图书馆已经做得很好了。

0 投票
1 回答
1602 浏览

clojure - 在 ClojureScript 中,为什么我不能导航到手动输入的 URL,但是如果我单击一个链接它可以工作?

(注意,我使用的是 Reagent、Secretary 和 Compojure(以及其他))

我想创建一条路线/sectest/:id,如果我将浏览器指向该路线,我会收到以下错误:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:3449/sectest/css/site.css". asdf:1 Refused to execute script from 'http://localhost:3449/sectest/js/app.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

但是,如果我单击浏览器中导航到该路线的链接,它就可以正常工作...

这是相关的代码:

客户端:

服务器端:

因此,以下链接将我带到my-page,并且控制台打印"Hi asdf"得很好:

但是如果我输入http://localhost:3449/sectest/asdf,我会得到一个错误,而且我似乎无法追踪它。我怀疑这可能与试图查找位于 , 的资源的代码有关/sectest(它不应该),但我无法确认这一点或弄清楚如何使用它......我clojure 的新手,如果我在某些方面非常无知,请原谅,有什么想法吗?

0 投票
0 回答
143 浏览

clojurescript - om.next 中的秘书路由、Ident 查询

在开始这个问题之前,我会说在 Clojure/Script 方面我仍然是一个新手,所以除了非常尖锐的问题之外,我将提出关于样式的任何一般性反馈,非常感谢使用。

我一直在用 om.next 构建一个非常简单的应用程序。对于客户端路由,我决定使用秘书。我的应用程序显示一个项目列表,目的是当您单击其中一个项目时,您可以查看详细信息。目前的实现是通过一个简单href的锚标记(例如,一个href可能看起来像/items/1,在哪里1id。这部分是因为您应该能够直接导航到详细信息 URL 以查看相同的视图。听起来很简单,但我这辈子都无法让它按要求工作。

首先,让我们看一下协调器的显着配置(为简洁起见,我已经删除了组件的实现细节render)......

精明的人会发现我正在尝试使用 links 进行思考,而这似乎正在按我的预期工作。当我添加这个组件并尝试在秘书路由后面使用它时,一切都崩溃了......

我的组件的实例Item没有收到props查询中指定的正确状态(它收到完整的app-state)。最让我困惑的是,如果我app-state在 REPL 中手动执行相同的查询,我会得到正确的数据集......

到目前为止,唯一对我有用的是绕过协调器(自己创建组件实例),将查询值app-state作为道具传递。但这意味着我不能通过调和器来改变状态,这是一个新的可怕的皱纹,对一个原本凌乱、蓬乱的难题来说是一个新的可怕的皱纹。

我在这里想念什么?虽然我有很多想法,但我最怀疑的是app-statevia的初始化om/tree->db

0 投票
1 回答
478 浏览

clojurescript - 使用试剂中的默认模板进行路由

我正在尝试使用试剂来构建我非常基本的项目,但是路由及其参数存在问题。这是来自试剂的样子

已编辑- :require 已添加

我正在尝试12c路线获取路线处理看起来像这样

在此处输入图像描述

我试图test用视图函数捕捉参数,但它出现了on C,而不是on C 12。如何将test参数传输到视图中c?还是我应该把它保存在不同的地方atoms

已编辑- 我通过将参数保存到 atom 中解决了它并且它可以工作,但它是传递参数的正确方法吗?

0 投票
1 回答
109 浏览

clojurescript - 获取所有命名路由

我目前正在学习它reagentsecretary路线。我发现我可以用likequery-params来获取所有参数的哈希图question mark (?)?name=Daniel

我不知道如何将id参数传递给 a defmethod,所以我希望它保存在一个原子中,所以我想知道如何获取包含所有命名参数的哈希映射,http://0.0.0.0:3449/#/about/black/12例如{:path "black" :id "12"}

0 投票
2 回答
138 浏览

clojurescript - 页面加载时未触发 defroute

我的routes.cljs文件中定义了应用程序路由,位于src/cljs/project/routes.cljs.

它被初始化为core.cljs

它被发送::events/set-active-panelevents.cljs

并且:active-panel订阅了subs.cljs

我订阅:active-panel了我的layout.cljs

@active-panelnil我第一次访问页面的时候。仅当我浏览页面时才调度面板。我知道这最初是有效的。我在我的提交中看不到任何可能破坏它的东西。

如何让我defroutes在页面加载以及通过网站导航时触发?