我有一个将在视图中使用的查询结果,但是当我在视图中调用变量时,我得到了undefined function data/0
(因为数据不起作用)
我已经用不同的方式,地图等传递数据了
controller.ex:
def new(conn, _params) do
data =
Enum.map(
from(AccountTypeSchema)
|> Repo.all(),
fn elem ->
elem |> Map.from_struct() |> Map.delete(:__meta__)
end
)
render(conn, "new.html", data: data)
end
view.html.eex:
<% Enum.each data, fn(item) -> %>
<option value="us">Facebook</option>
<% end %>
从视图中调用data
变量
答案 0 :(得分:1)
改为使用以下代码:
render(conn, "new.html", account_types: data)
然后查看:
<% Enum.each @account_types, fn(item) -> %>
<option value="us">Facebook</option>
<% end %>
通常,当您传递关键字列表或映射到视图时,模板中会有@
个前缀变量可用:https://hexdocs.pm/phoenix/Phoenix.View.html#render/3
答案 1 :(得分:1)
const express = require('express')
const app = express()
app.use(express.json())
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({
extended: true
}))
var multer = require('multer')
var path = require('path')
app.get('/', function (req, res) {
// Do something
})
app.get('/api/get_entities', function (req, res) {
// Do something else
})
返回一个列表(我负责以更惯用的方式重写代码):
Enum.map/2
很明显,一个人不能通过按键访问列表;改用关键字:
data =
AccountTypeSchema
|> Repo.all()
|> Enum.map(& &1 |> Map.from_struct() |> Map.delete(:__meta__))