AngularJS Typescript指令

阿尔吉曼塔斯·克拉索斯卡斯(Algimantas Krasauskas)

使用Typescript创建嵌套指令时遇到问题。我可以在简单的AngularJs中做到这一点:http ://plnkr.co/edit/UruTqEdMnqNT5wjxcQNC? p= preview

但是使用TypeScript却会显示“ No controller”错误消息。

/// <reference path="../../Scripts/AngularJs/Typings/angular.d.ts" />

export class directiveA {
    public static $inject: Array<string> = [];
    constructor() {
        var directive: ng.IDirective = {};
        directive.priority = 0; 
        directive.restrict = "A";
        directive.scope = {};
        directive.transclude = true;
        directive.templateUrl = "otherTemplate.html";
        directive.replace = true;
        directive.controller = function ($scope, $element) {
            this.flip = function () {
                $element.toggleClass("flipped");
             }
        }
        directive.replace = true;

        return directive;
    }
} 


export class directiveB{
    public static $inject: Array<string> = [];
    constructor() {
        var directive: ng.IDirective = {};
        directive.require = "^directiveA";
        directive.priority = 1;
        directive.restrict = "A";
        directive.scope = {
            simplrSide : "@"
        };
        directive.transclude = true;
        directive.templateUrl = "templeUrl.html";
        directive.link = function (scope, iElement, iAttrs, simplrEditable) {
            scope.flip = function () {
                simplrEditable.flip();
            }
        }
        directive.replace = true;
        return directive;
    }
}

我不知道它是否相关,但是我正在使用AMD Require.JS进行脚本加载

阿尔吉曼塔斯·克拉索斯卡斯(Algimantas Krasauskas)

该问题与Typescript无关,而与AngularJS指令有关。templateUrl更改template并使用内联代码有助于解决错误。这是AngularJS问题,更多内容是:https : //github.com/angular/angular.js/issues/1903希望他们将来会解决此问题!

export class directiveA {
    public static $inject: Array<string> = [];
    constructor() {
        var directive: ng.IDirective = {};
        directive.priority = 0; 
        directive.restrict = "A";
        directive.scope = {};
        directive.transclude = true;
        directive.template = "<div>Your content</div>";
        directive.replace = true;
        directive.controller = function ($scope, $element) {
            this.flip = function () {
               //Some func
             }
        }
        directive.replace = true;

        return directive;
    }
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS Typescript指令

来自分类Dev

AngularJS TypeScript指令链接函数

来自分类Dev

使用Typescript扩展angularjs指令

来自分类Dev

注册实现为Typescript类的AngularJs指令

来自分类Dev

TypeScript + AngularJS 1:如何使用选择指令连接枚举?

来自分类Dev

AngularJS + Typescript-指令内的控制器

来自分类Dev

具有TypeScript接口的AngularJS指令模型符号

来自分类Dev

带有ControllerAs和TypeScript类的AngularJs指令

来自分类Dev

具有TypeScript接口的AngularJS指令模型符号

来自分类Dev

使用typescript将装饰器添加到angularjs指令

来自分类Dev

TypeScript + AngularJS:在作用域上返回 0 的指令。$eval

来自分类Dev

如何将 angularJS 指令转换为 Typescript?

来自分类Dev

AngularJS,指令

来自分类常见问题

从AngularJS中的指令添加指令

来自分类Dev

AngularJS中的指令内部指令?

来自分类Dev

AngularJS:在指令中包装指令

来自分类Dev

从指令调用时,Typescript Angularjs控制器作用域未定义

来自分类Dev

AngularJS和Typescript:如何将类/类型分配为指令的控制器?

来自分类Dev

使用TypeScript在AngularJS中的指令之间共享来自异步调用的数据

来自分类Dev

AngularJS TypeScript控制器类指令中未定义作用域变量

来自分类Dev

AngularJS和Typescript:如何将类/类型分配为指令的控制器?

来自分类Dev

AngularJS如何编译指令?

来自分类Dev

AngularJS:了解递归指令

来自分类Dev

AngularJS指令:子节点

来自分类Dev

表头的AngularJS指令

来自分类Dev

AngularJs指令问题

来自分类Dev

AngularJS:包含指令模板

来自分类Dev

AngularJS指令链

来自分类Dev

Google Pagedown AngularJS指令