来自两个控制器的角度连接数据
Angular connecting data from two controllers
我有两个调用,用于match和matches。Match获取一个特定匹配的数据,并匹配整个批次,以及一些相对评级。我需要将这些相对评分传递给匹配的特定匹配。
从不同的API端点返回json数据的服务
function matchService($http, $q, API_URL) {
function getMatchesForVacancy(vacancyId) {
var deferred = $q.defer();
$http.get(API_URL + vacancyId + '/matches') //v2.0 lib
.then(function matchesArrived(matchData) {
deferred.resolve(matchData.data);
}, function matchesFailed(error) {
deferred.reject(error);
});
return deferred.promise;
}
function getMatchForVacancy(vacancyId, accountId) {
var deferred = $q.defer();
$http.get(API_URL + vacancyId + '/matches/' + accountId)
.then(function matchesArrived(matchData) {
//matchData.data.candidateRating = {overallScore: 0.65}; - ie. what I need to get
deferred.resolve(matchData.data);
}, function matchesFailed(error) {
deferred.reject(error);
});
return deferred.promise;
}
匹配和匹配显示在不同的视图中,所以我有单独的控制器文件。现在,在单场比赛控制器中,我试图通过id相同的特定评级。
所以我试图做的是,在候选控制器中创建一个这样的函数:
function connectRating(vacancyId, match){
var matches = matchService.getMatchesForVacancy(vacancyId);
for(var i = 0; i < matches.length; i++){
if(matches[i].accountId === match.accountId){
match.candidateRating.overralScore = matches[i].candidateRating.overralScore;
return match;
}
}
}
匹配的json如下:
[
{
"accountId": 0,
"candidateRating": {
"overallScore": 0
}
}
]
不知何故,正确的数据没有被传递,或者诸如此类。我一定是错过了什么,所以我很感激任何帮助。
您错过了承诺的成功功能。这时您就可以保证异步结果了。试试这个:
matchService.getMatchesForVacancy(vacancyId).then(function(d){
// the return data is in "d"
// do whatever you want with it
});
相关文章:
- websocket客户端在发送大数据时断开连接
- 是否自动更新套接字连接数据?socket.io
- 连接数据并使用D3在地图中弹出
- 如何在打开连接时从Javascript发送一些附加数据,如用户名或时间
- Node.js:在用户连接之前向客户端发送数据
- 使用节点JS连接和断开数据卡
- 如何使用peerJS对等连接接收数据
- imacros提取两部分数据+连接常量保存到文件javascript
- 当连接在一起时,如何使用两个部分构建 JSON 对象,生成正确的 JSON 数据路径
- 链接下拉列表选择列表代码 -- 连接数据
- 简单的 D3.js饼图转换*没有*数据连接
- 如何在 BreezeJS 元数据中定义矩阵/链接/交叉表连接
- 服务器发送的事件连接关闭或未接收到数据
- Socket.io 数据包在断开连接和重新连接之间丢失
- 来自两个控制器的角度连接数据
- MongoDB集合设计连接数据
- 在图表框架中连接数据点的算法
- 在Javascript函数中连接数据
- 如何连接数据url
- 绘制一条连接数据点的线