javascript - 模态窗口内的 ng-grid 仅在模态第一次打开时起作用

标签 javascript angularjs twitter-bootstrap modal-dialog ng-grid

我在模态窗口内有一个网格(必须在那里,因为我的客户真的想要那样),当模态第一次打开时,可以选择网格中的行,显示所选项目在父窗口的 div 中,一切似乎都很好,但是当模式窗口关闭并再次打开时,ng-grid 中的行被卡住,我无法取消选择旧行或选择新行。他的想法是,他可以通过选择或取消选择 ng-grid 中的行来添加或删除详细信息,但它只会添加,并且只是在模态窗口第一次打开时。

$scope.catalogOptions = {
        data: 'catalog',
        selectedItems: $scope.selectedDetails,
        columnDefs: [
            { field: "Num", displayName: 'NUM', width:"10%"},
            { field: "Type", displayName: 'TYPE', width:"90%"}],
        multiSelect: true,
        afterSelectionChange: function(item, event){
            if($scope.selectedDetails.length!=0){
                $scope.sdetails=$scope.selectedDetails;
            }
        }
    };
    $scope.sdetails=null;

这是我在 Controller 中的 ng-grid 定义,我还必须说带有 ng-grid 的模态窗口是从另一个模态窗口调用的(我的客户要求的),基本上结构是“主页>添加记录模态>添加细节模态”,我正在使用这个插件http://jschr.github.io/bootstrap-modal/bs3.html并使用数据切换和 href 从按钮调用模式

我尝试做的事情是否可行? =(

最佳答案

您是否检查过 afterSelectionChange 方法被调用了多少次?如果您是第二次选择一行,则会调用两次此回调,一次针对先前选择的行,一次针对新选择的行。

    afterSelectionChange: function(item, event){
        if(item.selected) { //<-- only execute the below for the selected row
            if($scope.selectedDetails.length!=0){
                $scope.sdetails=$scope.selectedDetails;
            }
        }
    }

关于javascript - 模态窗口内的 ng-grid 仅在模态第一次打开时起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214036/

相关文章:

javascript - 在执行之前测试 JavaScript 表达式是否格式良好

javascript - 让 jquery 插件在 Ajax 调用后工作

javascript - 在angularJS中合并两个数组

css - bootstrap3 折叠导航栏问题,导航栏标题溢出

html - 是否可以在超大 div 的 Bootstrap 列中设置背景?

javascript - @aws-sdk/lib-storage 使用 JSONStream.stringify() 将 JSON 从 MongoDB 流式传输到 S3

javascript - Angular-material flex 不执行任何操作

javascript - AngularJS 全局可选哈希参数

AngularJS - 如何在整个页面加载时进行重定向?

javascript - 选择框全屏 jquery bootstrap