我对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没有工作,现在是。 但是这个函数没有被调用,所以我想我还需要用范围做其他事情,有人可以帮助我吗?谢谢
答案 0 :(得分:1)
在角度Js中,当我们创建模态对话框时,我们必须为这个模式对话框l定义控制器和它的模板,它完全处于你调用模态对话框的新范围内,所以如果你这样做了任何操作都必须在模型对话框控制器中定义,而不是在你调用模态对话框的控制器中定义。
所以请在modelCtrl中定义你的选择条目,它肯定会起作用。 由于你是刚开始角js,从这里读取如何angularjs bootstrap模态https://angular-ui.github.io/bootstrap/