小编Sas*_*eca的帖子

如何在Elixir for Enum.map中传递arity 2的函数作为参数?

假设我有类似的东西:

    Enum.map(list, fn(x) -> String.duplicate("a", someValue * x) end)
Run Code Online (Sandbox Code Playgroud)

但相反,我想将String.duplicate/2函数作为参数传递,以简化我的代码:

Enum.map(list, &String.duplicate/2)
Run Code Online (Sandbox Code Playgroud)

我知道你可以为arity 1功能做到这一点:

Enum.map(list, &String.downcase/1)
Run Code Online (Sandbox Code Playgroud)

谢谢!

enums functional-programming function elixir arity

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

将JQueryUI与TypeScript和DefinitelyTyped定义文件一起使用时出错

所以我正在尝试将JQueryUI与TypeScript一起使用,到目前为止,我已经安装了JQueryUI npm install jquery-ui-dist和JQuery npm install jquery.我还使用npm install --save-dev @types/jquery和添加了DefinitelyTyped的定义文件npm install --save-dev @types/jquery-ui.

我有以下文件(省略了一些部分):

///<reference path="../../node_modules/@types/jqueryui/index.d.ts"/>
import * as $ from "jquery";
import "jquery-ui";

export default class Resizer {

    public static extraMargin = 5;

    public static setVerticalResizer(...) {
        ...
        let topElem: HTMLElement = <HTMLElement> cardElem.querySelector(".my-class");

        $(topElem).resizable({
            ...
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

在构建和运行时,我收到以下错误:

Uncaught TypeError: r(...).resizable is not a function

所以我猜我导入JQueryUI的方式有问题吗?或者可能没有正确安装JQueryUI?虽然导入和定义似乎在VS Code中正常工作.

这也是我在HTML文件中使用它们的方式:

<script src="node_modules/jquery-ui-dist/jquery-ui.mis.js"></script>
<link rel="stylesheet" href="node_modules/jquery-ui-dist/jquery-ui.min.css">
Run Code Online (Sandbox Code Playgroud)

有关如何解决问题和使用TypeScript的JQueryUI的任何想法?

javascript jquery-ui npm typescript definitelytyped

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

Phoenix Framework - 如何更新数据库中的记录并使用PATCH方法?

我正在使用Phoenix Framework构建应用程序,我已经完成了所有CRUD操作,但更新/编辑了一个.我已阅读并完成了编程凤凰书,但我仍然无法进行更新操作.我认为问题是我需要以某种方式覆盖POST方法.

这是我更新的变更集:

        def changeset_update(model, params \\ :empty) do
        model
        |> cast(params, [], [])
        |> validate_length(:username, min: 1, max: 20)
        end
Run Code Online (Sandbox Code Playgroud)

我在控制器中的动作:

    def update(conn, %{"user" => user_params, "id" => id}) do
    user      = Repo.get!(User, id) 
    changeset = User.changeset_update(%User{}, user_params)
    IO.puts changeset.valid?

    case Repo.update(changeset) do 
        {:ok, user} ->
            conn
            |> put_flash(:info, "#{user.name} updated successfully!")
            |> redirect(to: user_path(conn, :show, id: id))
        {:error, changeset} ->
            render conn, "edit.html", changeset: changeset, user: user
    end
    end
Run Code Online (Sandbox Code Playgroud)

和我的页面:

<h1>Edit User</h1>

<%= form_for @changeset, admin_path(@conn, :update, @user), …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

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

Phoenix Framework - 如何通过 form_for 填充地图字段?

我正在尝试填充一个字段 :params (来自模型/架构),它是一个地图。我有一个可用的 form_for,我想通过复选框填充这个 :params 映射,以便在提交表单时控制器将收到类似%{... params => %{"param1" => "true", "param2" => "false"}} ...

我看过inputs_for,但这似乎并没有做我需要的,因为它依赖于嵌套模式和模型,这意味着我需要为每组新参数创建一个新模式(我需要一些通用的如果参数发生变化,则不需要更改源代码)。

<%= form_for @changeset, audit_audit_path(@conn, :new_tool_request, @audit.id),
       fn f -> %>

  <%= render LayoutView, "changeset_error.html", conn: @conn, changeset: @changeset, f: f %>

  <div class="form-group"><label>Tool</label>
    <%= select f, :toolname, tools %>
  </div>
  <div class="form-group"><label>Parameter 1</label>
    <%= checkbox f, :param1 %>
  </div>
  <div class="form-group"><label>Parameter 2</label>
    <%= checkbox f, :param2 %>
  </div>

  <div class="form-group"><label>Date of Execution</label>
    <%= datetime_select f, :date %>
  </div>
  <div class="form-group">
    <%= hidden_input f, …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

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

Webhooks 可以与 GitHub OAuth 应用程序一起使用吗?

所以我一直在阅读 GitHub 开发人员文档和关于 webhooks 他们有以下声明:

Webhooks 允许您构建或设置订阅 GitHub.com 上某些事件的 GitHub 应用程序。当这些事件之一被触发时,我们将向 webhook 的配置 URL 发送一个 HTTP POST 负载。Webhooks 可用于更新外部问题跟踪器、触发 CI 构建、更新备份镜像,甚至部署到您的生产服务器。你只受限于你的想象力。

但是,关于应用程序,他们也有这样的声明:

GitHub 上的应用程序扩展并改进了现有的工作流程。人们可以从 GitHub Marketplace 购买应用程序,或者在 Works with GitHub 中浏览与 GitHub 集成的有用工具和服务。

如果您正在构建或添加集成,本文档将帮助您启动和运行。

有关与 GitHub 应用程序(而非 OAuth 应用程序)相关的支持请求、错误报告和讨论,请使用 GitHub 平台论坛。该论坛允许您与其他集成商以及来自 GitHub 的工程师和产品经理合作。

如果您的请求与 OAuth 应用程序有关,或者您需要讨论私人问题,请直接联系支持人员。

这似乎 Webhooks 只能与 GitHub Apps 一起使用?GitHub 应用程序和 GitHub OAuth 应用程序之间的区别不是很清楚,我不明白为什么 OAuth 应用程序不能使用 Webhooks?

oauth github webhooks

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

将本地Elixir / Erlang连接到Docker容器内正在运行的应用程序

我有一个运行在Docker容器中的Elixir应用程序(在我的笔记本电脑中)。Elixir应用程序使用以下命令执行:

iex \
  --name test@1.2.3.4 \
  --cookie secret \
  --erl '-kernel inet_dist_listen_min 9000'  \
  --erl '-kernel inet_dist_listen_max 9000' \
  -S mix phx.server
Run Code Online (Sandbox Code Playgroud)

Docker容器公开以下端口:

0.0.0.0:4000->4000/tcp, 0.0.0.0:4369->4369/tcp, 0.0.0.0:9000->9000/tcp

  • Phoenix服务器4000
  • EPMD 4369
  • 9000用于VM节点

然后,我尝试使用以下命令使用IEx Shell进行连接:

iex --name local@127.0.0.1 --cookie secret 导致此错误: Protocol 'inet_tcp': register/listen error: epmd_close

这似乎是因为本地epmd守护程序正试图分配给端口4369,但是,这已经分配给了Docker容器。

然后,我像这样更改了EPMD端口:

ERL_EPMD_PORT=4370 iex --name local@127.0.0.1 --cookie secret

我设法打开了IEx会话。但是,我找不到在Docker容器上运行的节点:

iex(local@127.0.0.1)1> Node.connect :'test@1.2.3.4'
false
Run Code Online (Sandbox Code Playgroud)

我不确定该如何解决。我正在关注此博客文章

erlang networking elixir docker epmd

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

为什么这个OpenGL轮换也会翻译我的对象?

我正在尝试旋转一个对象(箭头),它的默认位置指向右边.我一直在环顾四周,我正在使用glLoadIdentity()和glPushMatrix()以及glPopMatrix()作为仅在我的glBegin函数中旋转对象而不是整个场景的方法:

glLoadIdentity();
glPushMatrix();
glRotatef(5, 0.0f, 0.0f, 1.0f);
glBegin(GL_TRIANGLE_FAN);
    glColor3f(1.0f, 0.0f, 1.0f);
    glVertex2f(xx2-0.01, yy2);
    glVertex2f(xx2-0.06, yy2+0.03);
    glVertex2f(xx2-0.06, yy2-0.03);
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)

但是,它也会翻译我的箭头,而不是只旋转它.我是否需要将偏移量转换回原始位置?或者我做错了什么?

解决了:

glLoadIdentity();
glPushMatrix();
glTranslatef(xx2, yy2, 0);
glRotatef(45, 0.0f, 0.0f, 1.0f);
glTranslatef(-xx2, -yy2, 0);
glBegin(GL_TRIANGLE_FAN);
    glColor3f(1.0f, 0.0f, 1.0f);
    glVertex2f(xx2-0.01, yy2);
    glVertex2f(xx2-0.06, yy2+0.03);
    glVertex2f(xx2-0.06, yy2-0.03);
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)

需要转换回中心(0,0,0),应用旋转然后回到它的原始位置(xx2,yy2,0)

c c++ opengl rotation translate-animation

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

Ecto:如何从外键中的某个字段订购结果

所以我有一个属于用户的模型Ticket.每个用户都有很多票.因此user_id是每个Ticket的外键.如何构建一个查询,以获取每个用户的用户名所订购的所有票证?我一直在努力

    query       = from u in User, 
                                        preload: [:tickets]

    query_tickets = from t in Ticket,
                                        order_by: u.username,
                                        preload: [users: ^query]

    tickets = Repo.all(query_tickets)
Run Code Online (Sandbox Code Playgroud)

但它说模型Ticket没有任何用户关联?

     schema "tickets" do
    field :subject,           :string
    field :body,              :string
    field :followup,          :boolean
    field :closed,            :boolean
    field :file,              :string
    field :filepath,          :map
    belongs_to :user,         UserController
    has_many :ticket_message, TicketMessageController


    timestamps
  end

    schema "users" do 
    field :name,                    :string
    field :username,            :string
    field :password,            :string, virtual: true
    field :password_hash, :string
    field :email,               :string
    field :client,              :string
    field :role,                    :integer
    has_one …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

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