【发布时间】:2019-06-27 23:22:12
【问题描述】:
在我的 js 文件中,我有一个在屏幕上显示用户数据的函数,但由于某种原因,这会阻止将数据保存到数据库中。我想要两者都有,所以没有 js 文件,它将它保存到数据库中。
编辑:我基本上想要做的是将客户端输入的内容永久上传到屏幕上,以便其他客户端能够在将其保存到数据库的同时看到所有内容。但我的问题是我的 js 脚本阻止将客户端内容保存到数据库中。我是 Angular 的新手,但如果有人可以提供使用 $http.post 的示例,如果这对我的要求有所帮助,我将不胜感激。
编辑:我有点发现了我的问题,但我还没有完全解决它。来自按钮元素的 ng-click 阻止了客户端数据保存到数据库,但现在启用提交后的按钮,导致提交许多表单。我该如何处理?我对这个网站还很陌生,所以这会改变我的问题吗?
HTML
<form action="/blog" method="POST">
<div id="textarea-format-structure">
<textarea name="dummyInfo" id="blogVal" ng-model="textAreaValue"
ng-change="textChange()" ng-focus="btnChange = true" />
</div>
<button ng-disabled="btnChange" ng-click="btnChange = true" class="btnpost">Post</button>
</form>
<div id="my-posts-blog"></div>
JS
function postVal() {
var blogVal = document.getElementById("blogVal");
var appendVal = document.getElementById("my-posts-blog");
var create_div = document.createElement("div");
create_div.textContent = blogVal.value;
create_div.classList.add("post");
appendVal.prepend(create_div);
blogVal.value = "";
}
document.getElementById("blogVal").focus();
var postIt = document.querySelector(".btnpost");
postIt.addEventListener("click", postVal, false);
NODE.JS
router.post("/blog", (req, res) => {
mongo.connect(url, { useNewUrlParser: true }, (err, client) => {
var db = client.db("test");
db.collection("collect").insertOne({ myBlog: req.body.dummyInfo});
});
});
【问题讨论】:
-
在问题中添加 angularJS 标签。
-
听起来您想要做的是将表单数据提交到服务器,以便可以保存它而不会导致页面重新加载。这个对吗?如果是这样,那么您需要使用的工具是“Ajax”,它是“异步 JavaScript”的缩写。您可以在各处找到 Ajax 表单提交的示例,例如 here。
-
Sergio 您不能只编辑为“问题已解决”。根据知识共享许可,您不得破坏您现在属于 StackOverflow 站点的问题。乔希重新编辑了形状。我已经暂时锁定了。请,如果您必须编辑,请谨慎操作。
标签: javascript html node.js angularjs mongodb