【发布时间】:2017-05-24 14:51:38
【问题描述】:
我正在尝试在 angular es6 中开发应用程序。我有directve的问题。 这是我的代码
export default class RoleDirective {
constructor() {
this.template="";
this.restrict = 'A';
this.scope = {
role :"@rolePermission"
};
this.controller = RoleDirectiveController;
this.controllerAs = 'ctrl';
this.bindToController = true;
}
// Directive compile function
compile(element,attrs,ctrl) {
console.log("df",this)
}
// Directive link function
link(scope,element,attrs,ctrl) {
console.log("dsf",ctrl.role)
}
}
// Directive's controller
class RoleDirectiveController {
constructor () {
console.log(this.role)
//console.log("role", commonService.userModule().getUserPermission("change_corsmodel"));
//$($element[0]).css('visibility', 'hidden');
}
}
export default angular
.module('common.directive', [])
.directive('rolePermission',[() => new RoleDirective()]);
问题是我无法在构造函数中获取角色值。 这是我的html实现
<a ui-sref="event" class="button text-uppercase button-md" role-permission="dfsd" detail="sdfdsfsfdssd">Create event</a>
如果我控制台它会得到控制器对象。但是使用this.role时不会得到任何结果。
【问题讨论】:
-
你也可以参考this answer。
-
使用 ES5 会遇到完全相同的问题。而且这个指令一开始就拥有一个控制器和一个隔离的范围是没有意义的。
标签: angularjs angularjs-directive ecmascript-6