Javascript angularjs在创建后将参数传递给modal
我使用angularjs的默认模式并传递参数[1,2,3] 但是我想在我的Javascript angularjs在创建后将参数传递给modal,javascript,angularjs,Javascript,Angularjs,我使用angularjs的默认模式并传递参数[1,2,3] 但是我想在我的MainController中调用三个http请求,并将这些记录传递给modal。请求结果是异步的。我该怎么做 function MainController($modal){ var modalOptions = { templateUrl: 'templates/mytmp.html', controller: 'm
MainController
中调用三个http请求,并将这些记录传递给modal。请求结果是异步的。我该怎么做
function MainController($modal){
var modalOptions = {
templateUrl: 'templates/mytmp.html',
controller: 'myController',
size: size,
resolve: {
items: [1,2,3]
}
};
$modal.open(modalOptions);
}
从工厂返回承诺并链接异步调用以产生同步效果,获取一条记录,将其推送到items数组中,然后请求下一条记录。重复这个。然后,当检索到所有记录并将其推送到modalOptions时,打开modal
function MainController($modal, $http){
$http("getTwitterFriends").success(onTwitterSuccess);
$http("getFacebookFriends").success(onFacebookSuccess);
$http("getGmailPlusFriends").success(onGmailPlusSuccess);
// I want to list of these records on Modal.
}
嘿,这是一个小插曲:
基本上,您希望使用$q链接THNS或更干净一点
function MainController($modal){
var modalOptions = {
templateUrl: 'templates/mytmp.html',
controller: 'myController',
size: size,
resolve: {
items: []
}
};
$http("getTwitterFriends").then(function(record1){ //get first record
modalOptions.resolve.items.push(record1);
$http("getFacebookFriends").then(function(record2){ //get second record
modalOptions.resolve.items.push(record2);
$http("getGmailPlusFriends").then(function(record3){ //get third record
modalOptions.resolve.items.push(record3);
$modal.open(modalOptions); //open modal
}
});
});
}
以及指向文档的链接:
$q在模式中使用resolve,它返回这些承诺。。。另外,将对服务的http调用分离出来,并在控制器中使用该服务也是一个好主意,这是一棵漂亮的圣诞树……:)
$q.all([
SomeServiceWithPromises.someServiceMethodThatReturnsAPromise(),
SomeServiceWithPromises.someOtherServiceMethodThatReturnsAPromise()
]).then(function(results){
console.log(results, 'both results finished loadin...');
});