我正在与榆树合作开展一个项目,但目前我仍然遇到以下问题:我想更新elm生成的输入字段
newDate address =
header
[ id "header" ]
[ input
[ id "datePicker"
, autofocus False
, type' "date"
, onEnter address Add
]
[]
]
我最初的想法是将我的.elm代码与html集成,我成功完成了这项工作,使我能够创建自定义js脚本以与dom进行交互。
但是,在添加以下脚本时(将日期设置为当天),它似乎不会更新日期字段。
$(document).ready( function() {
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#datePicker').val(today);
});
但是,如果我在浏览器控制台本身执行此代码,它确实有效。
有什么想法吗?
提前致谢!
-K
补充:根据要求将榆树整合到html中
<html>
<head>
<title>Embedded Elm</title>
<script type="text/javascript" src="elm.js"></script>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<div id="main" style="width:50%; height:400px;"></div>
</body>
<script type="text/javascript">
var mainDiv = document.getElementById('main');
Elm.embed(Elm.Main, mainDiv);
$(document).ready( function() {
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#datePicker').val(today);
});
</script>
</html>
答案 0 :(得分:1)
我猜我的初始本能是准确的,即Elm.embed
的行为比我们想要的更异步,并且ready
回调在元素存在于DOM之前触发。值得观察调试器中的事件序列以验证是否存在这种情况。
编辑:我自己快速浏览一下,看起来就像第一个榆树框架可以通过调用embed
同步呈现。您是否确信应用程序的初始状态会导致包含该表单组件?
在任何情况下,如果你想要实现的是使用当前日期初始化一次字段,这个问题可能会有用:Initialize model with current date
编辑2 :可能导致某些问题的另一个问题是 <script>
标记关闭后的<body>
标记。这个问题似乎表明这不是一个好主意;也许你也可以尝试在<body>
关闭之前加入它?