这是我的工厂服务。
#include <stdlib.h>
#include <stdio.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
int pid, status;
int fd[2];
char *com1[2];
char *com2[3];
com1[0] = "ls";
com1[1] = NULL;
com2[0] = "head";
com2[1] = "-3";
com2[2] = NULL;
pipe(fd);
if((pid = fork()) == -1)
{
printf("fork error");
exit(1);
}
if(pid == 0)
{
/* Child process closes up output side of pipe */
dup2(fd[0], 0);
close(fd[1]);
execvp(com2[0], com2);
}
else
{
/* if(waitpid(0, WIFEXITED(&status), 0) != pid)
{
printf("wait error");
}
is this even needed here? */
/* Parent process closes up input side of pipe */
dup2(fd[1], 1);
close(fd[0]);
execvp(com1[0], com1);
}
exit(0);
}
在我的控制器中,我使用它将它们存储在控制器范围内
(function() {
var appfactory = angular.module("RoyalApp");
appfactory.factory('packService', packService);
packService.$inject = ['varsService', '$http'];
function packService(varsService, $http) {
var packages = {
getPackages: function() {
$http({
method: "GET",
url: "http://localhost:63666/api/Package?customer_id=" + varsService.dataObj._id
}).then(function mySuccess(response) {
return response.data;
}, function myError(response) {
});
}
}
return packages;
}
})();
也试过这个
var vm = this;
vm.packages = packService.packages.getPackages;
我在chrome控制台中没有错误,我的http响应是正确的。我根本无法返回响应。
答案 0 :(得分:3)
应该是:
packService.getPackages().then(function(packages) {
vm.packages = packages;
});
请注意getPackages
必须返回承诺:
getPackages: function() {
return $http({
method: "GET",
url: "http://localhost:63666/api/Package?customer_id=" + varsService.dataObj._id
}).then(function mySuccess(response) {
return response.data;
}, function myError(response) {
});
}
几个笔记。 packService
的公共API包含单个方法getPackages
- 这是您需要调用的方法。然后它返回一个promise对象,用于提供在加载数据时调用的回调(使用then
方法)。
答案 1 :(得分:1)
<强>控制器强>
angular.module('myApp', [])
.controller('MyCtrl', ['$scope' 'packService', function($scope, packService){
var vm = this;
packService.getPackages().then(function(packages) {
vm.packages = packages;
});
}]);
答案 2 :(得分:1)
您不应将名称放在匿名函数委托中。删除'mySuccess'&amp; 'myError'然后再试一次(不要忘记在你的控制器中处理返回作为承诺,如我之前的答案所述)。
zone_pch <- c(16, 10, 3, 8, 2)
plot(dune_pca, type = "n", scaling = 3)
points(dune_pca, display = "sites", scaling = 3, pch = zone_pch[zone])