为控制器注入解析参数
Inject controller with resolve parameters
我正在使用角度材质(AM),我想将一个外部控制器传递给$mdDialog。在AM文档中,我们创建这样的对话框:
function DialogController($scope, $mdDialog) { ... }
...
$mdDialog.show({
controller: DialogController,
templateUrl: 'dialog1.tmpl.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose:true
})
正如您所看到的,控制器只是当前控制器中调用$mdDialog的一个函数。我想使用外部控制器。
myApp.controller('ElementEditCtrl', function($scope,
$rootScope, $stateParams, $filter, $state, ElementsService, element, personnes) { ... }
正如你所看到的,我对params有一些决心。目前我正在使用$controller服务来实例化我的控制器:
var ctrl = $scope.$new();
$controller('ElementEditCtrl', {$scope: ctrl, personnes: EmployesService.get(), element: angular.copy($scope.element)});
$mdDialog.show({
controller: ctrl,
templateUrl: 'FrontEnd/App/views/ElementEditView.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: true,
})
我在浏览器控制台中出现了以下错误:
错误:ng:areq错误参数参数"fn"不是函数,已获取n个
我需要使用一个外部控制器,因为我需要从不同的视图打开这个对话框,而且我不想在每个控制器中重复代码。
创建服务并公开此函数:
function createDialog($scope) {
return function() {
$mdDialog.show({
scope: $scope.$new(),
templateUrl: 'some/temmplate.html,
clickOutsideToClose: true
});
};
然后只需粘贴创建对话框的控制器的作用域。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 使用Objective-C的JavaScript注入方法
- 如何检查注入函数的参数
- 注入参数与在 node.js 中返回数据
- 使用依赖关系注入将参数传递给命名函数
- 当构造函数具有参数时,Angular 2 中的依赖注入
- 通过注入器获取url参数查询
- 如何在服务中使用参数+依赖项注入
- 如何自动注入状态参数
- 为控制器注入解析参数
- 绑定函数而不是闭包以注入额外的参数
- 由于某些原因,基于路由参数动态注入特定工厂会失败
- Node.js函数参数注入函数
- 接受参数的依赖注入构造函数