我在互联网上找到了一个解决我问题的方法,但我有一个问题,我不知道如何覆盖这个:
restrict: 'A',
scope: {
file: '=',
fileName: '='
},
进入TypeScript。
我试过这个:
constructor($scope: ng.IScope) {
var directive: ng.IDirective = {};
directive.scope = {
file: '=',
fileName: '='
}
}
但它没有帮助,我仍然有一个错误:
属性'文件'在'ng.IScope'类型的值上不存在。
使用此示例:http://jsfiddle.net/lsiv568/fsfPe/10/
也许(或者可能是)我做错了什么,我必须以另一种方式修复此错误,但我希望您能引导我找到正确的解决方案
答案 0 :(得分:6)
ng.IScope
没有'file'\'filename'属性。只需extend
界面即可。像这样:
interface IMyScope extends ng.IScope
{
file: any;
fileName: any;
}
constructor($scope: IMyScope) {
}
编辑以下是我使用范围创建指令的方法:
class MyDirective implements ng.IDirective {
public scope: IMyScope;
// bla bla
constructor() {
this.scope = {
file: '=',
fileName: '='
};
}
this.link = (scope: IMyScope, elem: JQuery, attrs) => {
// bla bla
}
}
答案 1 :(得分:-1)
make指令是怎样的
module portal.directives{
export class glowFont{
constructor(){
var directive:ng.IDirective={};
directive.restrict='A';
directive.link=(scope,element,attrs)=> {
//do ur stuff here
};
directive.scope = {
foo1: "=?",
foo2: "=?"
};
return directive;
}
}
}
并在foo.directive(portal.directives)
中注册指令名称空间,其中foo是您的角度模块。