带Web组件的Dart服务器

bas*_*eps 6 dart

我想将用户信息从我的用户注册表单传递给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();
    };
    ...
  }
);
Run Code Online (Sandbox Code Playgroud)

Set*_*add 5

谢谢你的提问!

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

因为Web组件需要编译成普通的JavaScript和HTML(直到功能落在浏览器中......即将推出!),您无法发回包含自定义元素的原始HTML(就像您在示例中所做的那样).

基本上,在服务器上创建一个处理程序,在数据库中创建User并发送包含用户详细信息的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();
Run Code Online (Sandbox Code Playgroud)

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