问题描述
我正在开发一个 elm 应用程序,当我尝试将 <q-form class="q-gutter-md">
<q-list>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Tên thiết bị</q-item-label>
<q-input
dense
outlined
v-model="device.device_name"
label="Name"
/>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Loại thiết bị</q-item-label>
<q-select
outlined
v-model="option_1"
:options="options_type"
label="Type"
/>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Thời gian an toàn</q-item-label>
<q-input
dense
outlined
v-model="device.safe_time"
label="Time"
/>
</q-item-section>
</q-item>
</q-list>
<q-card-actions align="right" class="text-teal">
<q-btn
label="ADD"
color="primary"
@click="addData"
type="submit"
v-close-popup
/>
</q-card-actions>
</q-form>
更改为除 Model
以外的任何内容时,我收到错误
{}
解决方法
错误是因为 init
期望 Maybe Model
但在 Ellie 的 HTML 部分中,您没有传入标志。
有两个选项,您可以处理标志,或者删除标志。
继续解析标志: 您需要将 Elm.Main.init({ node: document.querySelector('main') }) 更改为
var app = Elm.Main.init({
node: document.querySelector('main'),flags: <some value>
});
通常也建议将您的标志更改为 Json.Decode.Value 并手动对其进行解码 所以你的 init 会变成
init : Value -> ( Model,Cmd Msg )
init flags =
case Json.Decode.decodeValue flagDecoder flags of
Ok decodedFlags -> ...
Err err -> ...
这样您就可以处理无效或丢失的标志。
移除标志解析
我们常用的单位类型是()
。
所以你的主要变成了
main : Program () Model Msg
和
init 变成
init : () -> ( Model,Cmd Msg )