从父控制器 AngularjS 访问 Popup 控件
Access Popup controls from parent controller AngularjS
在我的主页(Index.html)上,单击特定图标时,我正在通过调用相应的控制器方法打开一个uibmodal (bootstrap)弹出窗口。弹出窗口打开得很好。之后,无法从父控制器捕获弹出控件的按钮单击事件(同意,不同意)。
控制器.js:
function CameraController($scope,$uibModal) {
var vm = this;
vm.captureScreenShot = captureScreenShot;
vm.openCameraAgreement = openCameraAgreement;
/* Opens the agreement before capturing the screen shot */
function openCameraAgreement() {
//open the agreement
var instance = $uibModal.open({
animation: true,
templateUrl: 'app/components/capture/cameraAgreement.html',
controller: CameraController,
controllerAs: 'vm',
size: 'sm-2'
});
vm.cancel = function () {
instance.close();
};
vm.agree = function () {
instance.close();
captureScreenShot() //call this method to do something
};
}
function captureScreenShot($event) {
//do something to capture the screen shot
}
}
索引.html:
<li ng-controller="CameraController as camera">
<a ng-click="camera.openCameraAgreement()">
</a>
</li>
相机协议.html
<a class="btn btn-primary saveCamera" ng-click="vm.agree()">Agree</a>
<a class="btn btn-primary" ng-click="vm.cancel()">Disagree</a>
基本上,我想知道用户是否在弹出窗口中单击了同意或不同意,以便。基于vm.agree() 和 vm.cancel() 没有被调用,也没有错误。我在范围或控制器引用方面做错了什么吗?请帮忙!
尝试将 CammeraController $scope添加到模态实例,并将函数绑定到$scope,如下所示:
var instance = $uibModal.open({
animation: true,
templateUrl: 'app/components/capture/cameraAgreement.html',
controller: CameraController,
controllerAs: 'vm',
size: 'sm-2',
//Add the parent scope
scope: $scope
});
$scope.cancel = function() { ... }
编辑:是的,这种情况是您使用两个不同的控制器注册同一个控制器As属性,因此角度可能会在内部抛出错误,但并非每个错误都会显示在控制台上。我认为你能做的是你可以:1) 为模态创建一个新的控制器(函数),并将函数移动到模态内2) 使用 bindToController 将功能从相机控制器传递到模态控制器。
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 向ASP控件添加自定义事件
- 从IE中的不同元素调用时,文件输入控件未正确启动
- 当用户点击音频控件时,无法接收点击事件
- 在codeigniter中具有控件的looper.js
- 从父控制器 AngularjS 访问 Popup 控件