gpt4 book ai didi

javascript - 从新选项卡中的应用程序启动新应用程序 Angular-Node

转载 作者:行者123 更新时间:2023-12-03 04:56:46 25 4
gpt4 key购买 nike

我有一个 Angular 1.x - Node 应用程序。我需要使用 Google Chrome 在新选项卡中启动第一个应用程序中的另一个类似应用程序。其处理流程如下:
- 用户从列出许多可用应用程序的页面开始。
- 用户单击“运行”按钮,定义如下(位于表格行内):

<td><button type="button" class="btn btn-primary" ng-click="vm.onSubmit({'operation': 'run', 'slug': application.slug, 'port': application.port});">Run</button></td>

- onSubmit 单击处理程序从 View 的 Angular Controller 通过 http POST 请求将 JSON 数据发送到相应的 Node Controller 。
- Node Controller 按如下方式启动服务器的应用程序:

console.log("Application run request on the server side, port: " + req.body.port + " slug: " + req.body.slug);
var fork = require('child_process').fork;
var child = fork('../../' + req.body.slug);
res.status(200).json({ "port": req.body.port });

- Angular Controller 中 http POST 请求的 .success 方法获取 application-to-open-in-new-tab 端口

return $http.post('/api/applications', data)
.success(function (result) {
console.log("port is " + result.port);
// What should I do here (and elsewhere)?
})
// catch the error message
.error(function (error) {
vm.error = error;
});

还有……我需要你的帮助!
到目前为止,所有流程都运行良好,新的应用程序实例在 Node 中启动(显示上面的控制台消息,并且,如果我手动打开一个新选项卡并 make http://localhost:port_nb ,我将得到我需要的内容从第一个应用程序自动显示触发)。我的问题是:在 Angular 空间( View Controller )的哪个位置以及我应该如何实现接近

的东西
$window.open('http://localhost:port_nb', '_blank');

知道这可以通过直接单击按钮来实现,但这不是我的情况。正式的答案可能是“创建一个点击事件”,但我并没有想到如何创建。谢谢!

最佳答案

您应该在 Angular 的 Controller 中实现 onSubmit 方法,如下所示

vm.onSumbit = function(data) {
return $http.post('/api/applications', data)
.success(function (result) {
console.log("port is " + result.port);
$window.open('http://localhost:' + result.port, '_blank');
})
// catch the error message
.error(function (error) {
vm.error = error;
});

}

还要确保将 Controller Controller as vm引用。

旁注:

最好将 $http 请求存储在工厂或服务中。

关于javascript - 从新选项卡中的应用程序启动新应用程序 Angular-Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42398392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com