Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs和BootstrapUI-如何根据另一个模式中的更改更新一个模式中的变量_Javascript_Angularjs_Angular Ui - Fatal编程技术网

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;
    }); 

这解决了我的问题!:)

你是如何添加新公司的?这是我代码中已有的。我缺少的是如何将数据从该模式返回到前一个范围!谢谢你的建议!