在 ngDialog 中将变量发送到控制器('resolve')
send variables to controller('resolve') in ngDialog
使用 ngDialog 打开模式的简单方法是这样的:
ngDialog.open({
template: 'template.html',
controller: 'someCtrl'
})
如何向 'someCtrl' 发送变量?
ngDialog中有'resolve'这样的东西吗?
示例来自 angular-bootstrap 模态:
$modal.open({
template: "<p>This is template</p>",
controller: "someCtrl",
resolve: {
someVar: function(){
return "Value of someVar"
}
}
})
这将打开模式,将 'someVar' 发送给负责的控制器。
更新:
新版本的 ngDialog 似乎增加了这个功能:
ngDialog.open({
controller: function Ctrl(dep) {/*...*/},
resolve: {
dep: function depFactory() {
return 'dep value';
}
}
});
看起来 ngDialog 不支持控制器中的解析和自定义注入。但是,您始终可以通过自己创建 controller
实例来手动完成此操作:
ngDialog.open({
scope: $scope,
template: 'template.html',
controller: $controller('someCtrl', {
$scope: $scope,
name: 'Thomas'
})
});
然后在控制器中你将能够访问注入的 service/variable:
app.controller('someCtrl', function($scope, name) {
console.log(name); // Thomas
});
然而,这种方法有一个警告,因为当控制器由 ngDialog
本身实例化时,它还会在其中注入 $element
服务,这是打开的 angular.element
实例dialog HTML(但我怀疑它在控制器中是否必要)。但无论如何你应该知道它。
演示:http://plnkr.co/edit/3YpQ2bemk8fntKAPWY9i?p=preview
使用 ngDialog 打开模式的简单方法是这样的:
ngDialog.open({
template: 'template.html',
controller: 'someCtrl'
})
如何向 'someCtrl' 发送变量?
ngDialog中有'resolve'这样的东西吗?
示例来自 angular-bootstrap 模态:
$modal.open({
template: "<p>This is template</p>",
controller: "someCtrl",
resolve: {
someVar: function(){
return "Value of someVar"
}
}
})
这将打开模式,将 'someVar' 发送给负责的控制器。
更新:
新版本的 ngDialog 似乎增加了这个功能:
ngDialog.open({
controller: function Ctrl(dep) {/*...*/},
resolve: {
dep: function depFactory() {
return 'dep value';
}
}
});
看起来 ngDialog 不支持控制器中的解析和自定义注入。但是,您始终可以通过自己创建 controller
实例来手动完成此操作:
ngDialog.open({
scope: $scope,
template: 'template.html',
controller: $controller('someCtrl', {
$scope: $scope,
name: 'Thomas'
})
});
然后在控制器中你将能够访问注入的 service/variable:
app.controller('someCtrl', function($scope, name) {
console.log(name); // Thomas
});
然而,这种方法有一个警告,因为当控制器由 ngDialog
本身实例化时,它还会在其中注入 $element
服务,这是打开的 angular.element
实例dialog HTML(但我怀疑它在控制器中是否必要)。但无论如何你应该知道它。