我有一个meteor / angular应用程序,我的index.ng.html页面看起来像
<div>
{{1+4}}
<form id = "myForm" name="myForm" >
<input type="text" name = "username"/>
<input type="text" name = "password"/>
<input type="submit" value="Submit"/>
</form>
</div>
当我通过将1 + 4更改为1 + 6来更新文件时,当页面“重新加载”时,我在表单中的任何预先填写的信息都会丢失。
如何在页面重新加载时避免丢失数据?
答案 0 :(得分:1)
将数据存储在Session
对象中。这应该可以在热代码重新加载后继续存在但不手动页面刷新。
Template.xxx.events({
'change input': function(e,tmpl) {
var fieldName = tmpl.$(e.currentTarget).attr("name");
Session.set('field' + fieldName, e.currentTarget.value);
}
});
Template.xxx.helpers({
valueForField = function(fieldName) {
return Session.get("field" + fieldName);
}
});
然后你可以在你的html中使用它:
<form id = "myForm" name="myForm" >
<input type="text" value="{{valueForField 'username'}}" name = "username"/>
<input type="text" value="{{valueForField 'password'}}" name = "password"/>
<input type="submit" value="Submit"/>
</form>
显然有点单调乏味。流星过去常常使用&#39;保留输入&#39;包,但看起来是deprecated。