无法更新的角度UI模式的值返回给调用者屏幕(Not able to update angular u

2019-10-22 03:05发布

我试图调用angularUI模态,当我点击列表中的一个元素。 我可以成功地加载模式,在该模式更改值,然后回来给调用者屏幕。 但我不知道如何更新呼叫者屏幕上的列表中。 我尝试过各种东西像里面的init()调用程序画面的控制器的方法更新,但不会被调用的模式接近。 我试图指定为可变的内部控制器,但这并不工作。 我的猜测是需要的东西里面下面的方法来进行。

  modalInstance.result.then(function(personModified) { $log.info('personModified = ' + personModified.name + ' Finished at: ' + new Date()); }, function() { $log.info('Modal dismissed at: ' + new Date()); }); }; 

试着像下面循环通过:

 modalInstance.result.then(function(personModified) { for (int i = 0; i < modalCtrl.people.length; i++) { if (modalCtrl.people[i]._id === personModified._id) { modalCtrl.people[i] = personModified; } } $log.info('personModified = ' + personModified.name + ' Finished at: ' + new Date()); }, function() { $log.info('Modal dismissed at: ' + new Date()); }); }; 

但modalCtrl没有内部modalInstance.result.then(函数(){})方法识别。 我不知道还有什么能做些什么来更新我的来电显示屏幕上的列表。 任何帮助将非常感激。 这里是plunker http://plnkr.co/edit/DR6Gadoh3rXegCrTOTzB?p=preview

Answer 1:

通过数组索引随着当前元素,同时打开模态像modalCtrl.open('lg', person, $index) ,当模式的成功通话,我们可以更新this.people特定指数的阵列。

HTML

<div ng-repeat="person in modalCtrl.people">
    <a ng-click="modalCtrl.open('lg', person, $index)" class="undecorated-link">
        <p class="text-center">{{person.name}}</p>
    </a>
</div>

modalCtrl.open = function(size, selectedPerson, index) {

    var modalInstance = $modal.open({
        templateUrl: 'myModalContent.html',
        controller: 'ModalInstanceCtrl',
        size: size,
        scope: $scope,
        resolve: {
            person: function() {
                return angular.copy(selectedPerson);
            }
        }
    });

    modalInstance.result.then(function(personModified) {
        $log.info('personModified = ' + personModified.name + ' Finished at: ' + new Date());
        modalCtrl.people[index] = personModified;
    }, function() {
        $log.info('Modal dismissed at: ' + new Date());
    });
};

工作Plunkr

希望能帮助你,谢谢。



文章来源: Not able to update angular ui modal values back to the caller screen