ES6 Angular 1.5 控制器中的 ngDialog
ngDialog in ES6 Angular 1.5 controller
我正在尝试将我的 Angular 1.5 代码重写为 ES6。我正在使用 ng-dialog
并且正在导入它但没有将其注入控制器,因为我试图使其成为模块本身的依赖项。我有以下代码:
import angular from 'angular';
import ngDialog from '../libraries/ng-dialog';
const template = `<div>
<button ng-click="ctrl.openTheDialog()">Click Me</button>
</div>`;
class MyController {
constructor($scope) {
'ngInject';
this.$scope = $scope;
}
openTheDialog() {
ngDialog.open({
template: templateUrl,
scope: this.$scope
});
}
}
angular.module('myApp', ['ngDialog'])
.component('myComponent', {
template: template,
controllerAs: 'ctrl',
controller: MyController
});
当我单击该按钮时,我收到一条错误消息,指出 open
不是一个函数。我不太确定我在哪里犯了错误。有人可以帮忙指出错误吗?谢谢!
原来你只需要在构造函数中将 ngDialog 设置为 属性:
constructor($scope, ngDialog) {
this.ngDialog = ngDialog;
...
...
}
openTheDialog() {
this.ngDialog.open({
...
});
}
我正在尝试将我的 Angular 1.5 代码重写为 ES6。我正在使用 ng-dialog
并且正在导入它但没有将其注入控制器,因为我试图使其成为模块本身的依赖项。我有以下代码:
import angular from 'angular';
import ngDialog from '../libraries/ng-dialog';
const template = `<div>
<button ng-click="ctrl.openTheDialog()">Click Me</button>
</div>`;
class MyController {
constructor($scope) {
'ngInject';
this.$scope = $scope;
}
openTheDialog() {
ngDialog.open({
template: templateUrl,
scope: this.$scope
});
}
}
angular.module('myApp', ['ngDialog'])
.component('myComponent', {
template: template,
controllerAs: 'ctrl',
controller: MyController
});
当我单击该按钮时,我收到一条错误消息,指出 open
不是一个函数。我不太确定我在哪里犯了错误。有人可以帮忙指出错误吗?谢谢!
原来你只需要在构造函数中将 ngDialog 设置为 属性:
constructor($scope, ngDialog) {
this.ngDialog = ngDialog;
...
...
}
openTheDialog() {
this.ngDialog.open({
...
});
}