AngularJs如何在bootstrap模式中调用ng-click?

时间:2018-05-30 14:19:03

标签: angularjs twitter-bootstrap modal-dialog

我对AngularJS很新,所以这个问题可能很容易解决。

我正在做一个模态,到目前为止,它正确地打开模板和css工作,唯一不起作用的是模板内的函数。 我有一个ng-click,当我点击该功能时没有被调用。

模态控制器:

export class modalCtrl {
        static $inject = ["$uibModalInstance", "dataList"];
        constructor(private $uibModalInstance: ng.ui.bootstrap.IModalServiceInstance, public dataList: Array<Interfaces.dataList>) { }

        close(): void {
            this.$uibModalInstance.close();
        }
    }
    module.controller("modalCtrl", ModalCtrl);

在我的主控制器中启动模态的功能:

openModal(event: ng.IAngularEvent) {
            event.stopPropagation();
            this.$uibModal.open({
                controller: "modalCtrl",
        controllerAs: "vm",
        resolve: {
                    dataList: () => this.dataList
        },
                templateUrl: "modalTemplate.htm"
            });
        }

我正在调用的函数在ng-click上输入模态:

 selectDataEntry(item: Interfaces.dataList) {
      this.dataList.forEach(p => p.isSelected = false);
      item.isSelected = true;
      console.log('ngclick works');
    }

所以我把模态的解析放在我用来检索数据的接口中,这解决了我遇到的另一个问题,循环这个接口的ng-repeat没有工作,现在是。 但是这个函数没有被调用,所以我想我还需要用范围做其他事情,有人可以帮助我吗?谢谢

1 个答案:

答案 0 :(得分:1)

在角度Js中,当我们创建模态对话框时,我们必须为这个模式对话框l定义控制器和它的模板,它完全处于你调用模态对话框的新范围内,所以如果你这样做了任何操作都必须在模型对话框控制器中定义,而不是在你调用模态对话框的控制器中定义。

所以请在modelCtrl中定义你的选择条目,它肯定会起作用。 由于你是刚开始角js,从这里读取如何angularjs bootstrap模态https://angular-ui.github.io/bootstrap/