Javascript Angularjs和BootstrapUI-如何根据另一个模式中的更改更新一个模式中的变量
有一个应用程序使用变量Javascript Angularjs和BootstrapUI-如何根据另一个模式中的更改更新一个模式中的变量,javascript,angularjs,angular-ui,Javascript,Angularjs,Angular Ui,有一个应用程序使用变量$scope.companys。单击按钮后,第一个模式打开,该变量中的公司显示在选择元素中 用户可以单击“添加新公司”按钮,打开一个新的第二个模式(在现有公司的基础上),在该模式下,用户可以创建一个新公司 关闭第二个模式时,用户将返回到第一个模式,但是select元素中的公司不会使用刚刚创建的新公司进行更新 我的问题是-如何更新第一个模式,以便它反映对$scope.companys的更改,并且新公司可以在select元素中使用 在主控制器中,我使用工厂(“sharedCom
$scope.companys
。单击按钮后,第一个模式打开,该变量中的公司显示在选择元素中
用户可以单击“添加新公司”按钮,打开一个新的第二个模式(在现有公司的基础上),在该模式下,用户可以创建一个新公司
关闭第二个模式时,用户将返回到第一个模式,但是select元素中的公司不会使用刚刚创建的新公司进行更新
我的问题是-如何更新第一个模式,以便它反映对$scope.companys
的更改,并且新公司可以在select元素中使用
在主控制器中,我使用工厂(“sharedCompanies
)检索公司:
sharedCompanies.getCompanies().then(function(data){
$scope.companies = data;
}
然后,每当我打开一个新模式时,我都会这样做,将范围传递给它,如下所示:
$scope.newCompany = function () {
var newCompanyModalInstance = $uibModal.open({
templateUrl: '/static/partials/newCompanyModal.html',
controller: 'NewCompanyCtrl',
size: 'lg',
resolve: {
events: function () {
return $scope.events;
},
},
scope: $scope
});
在每种模式下,我都可以访问$scope.companys
,并且这些公司显示正确。新公司创建成功,但是要在选择元素中显示它,我需要关闭模态并再次打开它们
添加新元素后,如何更新这些模态中的$scope.companys
变量 在第二个模式中,在关闭第二个模式之前创建新公司后,使用$scope.companys.push(newlyCreatedCompany)
将新添加公司的数据推送到$scope.companys
中,谢谢您的评论!在您的帮助下,我诊断出了问题:我没有从modal返回正确的数据!必须添加的是第二个模式中的这一行:
$http.post(addNewCompanyAndServicesApiURL, data)
.then(function successCallback(response) {
$scope.companies.push(response.data);
$uibModalInstance.close({
companies:$scope.companies,
});
}, function errorCallback(response){
//...
});
第一个模态中的这一部分用来捕捉第二个模态的响应:
newCompanyModalInstance.result.then(function (data) {
$scope.companies = data.companies;
});
这解决了我的问题!:) 你是如何添加新公司的?这是我代码中已有的。我缺少的是如何将数据从该模式返回到前一个范围!谢谢你的建议!