6

我想将用户注册表单中的用户信息传递给 Web 组件。这可能吗。如下所示:

app.addRequestHandler(
  (req) => req.method == 'POST' && req.path == '/newUser',
  (req, res) {
    ...
    input.onClosed = () {
      ...
      var user = new User();
      user.name = params["user[first_name]"];
      user.email = params["user[email]"];
      res.outputStream.writeString('<x-MyWebComponent data-value="User: user"></x-MyWebComponent>');
      res.outputStream.close();
    };
    ...
  }
);
4

1 回答 1

5

感谢您的提问!

向 Web 组件发送数据与向任何网页发送数据没有什么不同。也就是说,您的网页或组件可以向服务器打开 AJAX(又名 XMLHttpRequest 又名 HttpRequest)请求并获取 JSON 数据。

因为 web 组件需要编译成 vanilla JavaScript 和 HTML(直到功能登陆浏览器......即将推出!)你不能发回包含你的自定义元素的原始 HTML(就像你在你的例子中一样)。

基本上,在您的服务器上创建一个处理程序,该处理程序在数据库中创建用户并发送包含用户详细信息的 JSON 响应。您的网页(或组件)将接收 JSON 响应,然后可以通过组件将其绑定到页面。

这里有很多活动部件,所以我认为我们需要一个端到端的样本。同时,您可以执行以下操作:

var user = new User();
user.name = params["user[first_name]"];
user.email = params["user[email]"];
res.headers.add('Content-Type', 'application/json');
res.outputStream.writeString(user.toJson());
res.outputStream.close();

这假设您String toJson();向 User 类添加了一个方法。

于 2012-12-02T19:11:02.610 回答