使用 modalInstance.result.then() AngularJS 执行父控制器方法
Execute parent controller method using modalInstance.result.then() AngularJS
一旦模态框的 "okay" 按钮被按下,我正在尝试 运行 class 方法(在创建我的 $uibModal
的控制器中)。我的理解是 modalInstance
从组件返回模态对象,这就是我的问题......我如何与父控制器而不是组件交互?
示例:
modalInstance.result.then(function () {
// if close() called in component, do this in the parent controller
this.users.splice(this.users.indexOf(user), 1);
}, function () {
// if dissmised, do this
console.log('modal-component dismissed at: ' + new Date());
});
这会引发错误:
TypeError: Cannot read property 'users' of undefined
这是一个包含关键项目的 Plunker:
https://plnkr.co/edit/ZY3Kr9g3MuT1AxsQKfsj?p=catalogue
AngularJS 1.6,使用 Angular Fullstack Generator 4.2.3
我已按照此文档:https://angular-ui.github.io/bootstrap/ 创建模态组件并且模态效果很好。但是无论我尝试什么,我都无法拼接我的用户数组。请帮忙!
可能是因为在回调中错误地绑定了 this
,请尝试使用 =>
将其显式绑定到父封闭范围:
modalInstance.result.then(() => {
// if close() called in component, do this in the parent controller
this.users.splice(this.users.indexOf(user), 1);
}, function () {
// if dissmised, do this
console.log('modal-component dismissed at: ' + new Date());
});
一旦模态框的 "okay" 按钮被按下,我正在尝试 运行 class 方法(在创建我的 $uibModal
的控制器中)。我的理解是 modalInstance
从组件返回模态对象,这就是我的问题......我如何与父控制器而不是组件交互?
示例:
modalInstance.result.then(function () {
// if close() called in component, do this in the parent controller
this.users.splice(this.users.indexOf(user), 1);
}, function () {
// if dissmised, do this
console.log('modal-component dismissed at: ' + new Date());
});
这会引发错误:
TypeError: Cannot read property 'users' of undefined
这是一个包含关键项目的 Plunker: https://plnkr.co/edit/ZY3Kr9g3MuT1AxsQKfsj?p=catalogue
AngularJS 1.6,使用 Angular Fullstack Generator 4.2.3
我已按照此文档:https://angular-ui.github.io/bootstrap/ 创建模态组件并且模态效果很好。但是无论我尝试什么,我都无法拼接我的用户数组。请帮忙!
可能是因为在回调中错误地绑定了 this
,请尝试使用 =>
将其显式绑定到父封闭范围:
modalInstance.result.then(() => {
// if close() called in component, do this in the parent controller
this.users.splice(this.users.indexOf(user), 1);
}, function () {
// if dissmised, do this
console.log('modal-component dismissed at: ' + new Date());
});