gpt4 book ai didi

javascript - 在 Sails.js 上获取请求 Ember.js

转载 作者:IT老高 更新时间:2023-10-28 23:17:37 27 4
gpt4 key购买 nike

我正在使用 Sane stack 创建一个 Web 应用程序,它在客户端使用 Ember.js 作为 JavaScript 框架,在服务器端使用 Sails.js 作为 node.js 框架。我的应用架构结构如下:

enter image description here

我正在尝试从 Jira API REST 中获取一些数据,例如,我可以使用简单的 Controller 通过sails.js 从 JIRA API REST 中获取项目信息:

//server/app/controllers/JiraController
module.exports = {
loadProject : function(req, res){
console.log("Jira contoller");
var Http = require('machinepack-http');
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
Http.sendHttpRequest({
url: '/rest/api/2/project/',
baseUrl: 'https://jira.domain.com',
method: 'get',
headers: {
"Authorization": "Basic YWxhYS52654f0bWFuaTphbGFhNDE0NA=="
}
}).exec({
serverError: function(result) {
res.send("server error" + JSON.stringify(result));
},
success: function(result) {
// res.send("Projects loaded successfully");
res.send(result);
}
});
}
};

在 server/app/config/routes 中:我添加:

'get /projects' : 'JiraController.loadProject'

但我想做的是使用 Ember.js 在客户端获取项目数据,换句话说,我希望sails.js 请求 JIRA API Rest,然后将数据 (JSON) 传递给 Ember。 js,它将在 View 中显示它。

请问我该怎么做!?

编辑:

在客户端我这样做了:

//pods/components/project/component.js

import Ember from 'ember';

export default Ember.Route.extend({
model() {
return Ember.$.getJSON('/api/v1/projects');
}
});

如何在我的 View 中呈现这个 JSON?

最佳答案

我认为您的代码中存在一些实现错误。

首先你要在 component.js 文件中编写 Ember.Route,这是错误的。这样,您的路线被称为 component 并且由于这是错误的位置,因此您的 model 为空。这不起作用还有一个原因。看,你是如何调用 model 钩子(Hook)的!正确的做法如下:

import Ember from 'ember';

export default Ember.Route.extend({
model: function() {
return Ember.$.getJSON('/api/v1/projects');
}
});

把它放在app/routes/components/component.js 这样你的路由就叫做component。现在,您必须能够在 view 中访问等效的 model 数据,理想情况下,该数据应该位于 app/templates/components/component.hbs

关于javascript - 在 Sails.js 上获取请求 Ember.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30482907/

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