使用 TypeScript 类编写 Angular 指令

2023-11-30

我可能只是试图一次结合太多“新的”概念,但我正在尝试使用 TypeScript 类编写自定义 Angular 指令。目前,我并不想做任何非常有用的事情,只是做一个 POC。

我有一个如下所示的 TypeScript 文件:

module App {
    'use strict';

    export class appStepper {

        public link:(scope:angular.IScope, element: angular.IAugmentedJQuery, attrs: angular.IAttributes) => void;
        public template:string = '<div>0</div><button>-</button><button>+</button>';
        public scope = {};
        public restrict:string = 'EA';

        constructor(){ }

        public static Factory(){
            var directive = () =>
            { return new appStepper(); };
            return directive;
        }
    }

    angular.module('app').directive('appStepper', App.appStepper.Factory());
}

它在 JavaScript 中编译为:

(function(App) {
    'use strict';
    var appStepper = (function() {
        function appStepper() {
            this.template = '<div>0</div><button>-</button><button>+</button>';
            this.scope = {};
            this.restrict = 'EA';
        }
        appStepper.Factory = function() {
            var directive = function() {
                return new appStepper();
            };
            return directive;
        };
        return appStepper;
    })();
    App.appStepper = appStepper;
    angular.module('app').directive('appStepper', App.appStepper.Factory());
})(App || (App = {}));

我的角度模块看起来像(我什至不知道是否需要这样做):

angular.module('app',['appStepper'])

我尝试在我看来使用它:

<div app-stepper></div>

并得到这些错误:

 Uncaught Error: [$injector:nomod] 
 Uncaught Error: [$injector:modulerr] 

为什么我的没有app知道我的指令吗?


尽管这不是完全相同的问题,但这个答案包含了我正在尝试做的事情的示例:如何使用 TypeScript 定义我的控制器?

我按照它引用的 Plnkr 中的示例进行操作并发现成功:http://plnkr.co/edit/3XORgParE2v9d0OVg515?p=preview

我的最终 TypeScript 指令如下所示:

module App {
    'use strict';

    export class appStepper implements angular.IDirective {

        public link:(scope:angular.IScope, element: angular.IAugmentedJQuery, attrs: angular.IAttributes) => void;
        public template:string = '<div>0</div><button>-</button><button>+</button>';
        public scope = {};
        public restrict:string = 'EA';

        constructor(){ }

    }

    angular.module('app').directive('appStepper', [() => new App.appStepper()]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 TypeScript 类编写 Angular 指令 的相关文章

随机推荐

  • Mysql自动更新事件

    使用 php 和 MySql 无论如何都可以在日期过期时获取数据库中的日期以自行更新 即事件名称 x 的日期为 2012 05 12 在 2012 05 13 日期应更改为 2012 05 19 从 2012 05 12 算起一周 多谢你们
  • 在哪里初始化托管 C++/CLI DLL?

    使用 C CLI 创建 DLL 时 或者我应该问 是否存在与 DllMain 等效的东西 这段初始化代码中不能调用的内容是否有任何限制 Dan 关于加载器锁 C CLI 的 CLR 延迟加载以及混合模式二进制文件的正确初始化 我昨天刚刚在这
  • Pyqt:从函数“动态”附加到 qtextedit

    我的 pyqt gui 中有一个按钮 单击该按钮会运行一个函数 该函数会执行一些冗长的数学计算 在这个函数中有很多打印语句 例如 print finished calculating task1 going on to task2 因此 通
  • java中用simplexml反序列化xml

    我正在尝试使用 SimpleXML 反序列化 xml 字符串 我查看了他们的示例 但我不确定我是否掌握了这个概念 示例 XML 验证
  • 生成不带foreignObject标签的svg

    我在用dom to image js插入 问题是 它会生成一个
  • 如何从HttpClient获取json文件?

    我正在尝试获得一个json文件来自HttpClient 但是当我添加时出现错误 subscribe imports import Injectable from angular core import HttpClient HttpHead
  • 检查文件中的行是否以特定字符串开头 - 进行一些计算

    所以这就是我想做的 我有一个巨大的文件 我想在 python 中打开它并查看每一行 如果它与某个预定的字符串匹配 我想获取紧随该字符串之后的数字 将它们全部加起来并得到平均值 该文件如下所示 Data Number of hours 34
  • 在 wpf 中拖放路径

    是否可以使用鼠标事件处理程序在 wpf 中拖放路径 特别是 我想用鼠标左键拖动路径并将其放置在网格上 如何才能做到这一点 尝试这个 鉴于 文本框名称为 TextBox1 public MainWindow Initialize UI Ini
  • 如何避免 Qt app.exec() 阻塞主线程

    我是 Qt 新手 但需要解决一个难题 我创建了一个非常简单的 GUI 我需要将其添加到现有的 C 应用程序中 问题是 我只编写了一个插入更大架构的模块 这限制了我对主线程的访问 我的代码必须驻留在以下四个函数中 Init 函数 在主线程中运
  • 到底如何在后台线程上渲染 Metal?

    这个问题是由用户界面交互引起的 例如全屏显示标题栏 该问题的答案提供了解决方案 但没有提供如何解决实施那个解决方案 解决办法是在后台线程上渲染 问题是 苹果提供的代码涵盖了很多内容 所以大部分都是无关的代码 所以即使我能理解它 使用苹果的代
  • 在 Django 中提交表单时不会调用基于通用类的视图中的 post 方法?

    我写了一个 mixin 来覆盖POST and get from kwargs of CreateView 我在做AJAX提交我的表格 我看到get from kwargs通过在控制台上打印来调用 但没有其他方法 例如post form v
  • Espresso 和 Android 联系人选择器

    我尝试使用 Espresso 的 Android 联系人选择器添加联系人 但这不起作用 这是调用联系人选择器的命令 Intent intent new Intent Intent ACTION PICK ContactsContract C
  • 实体框架/Linq to SQL:跳过并获取

    只是好奇 Skip Take 应该如何工作 我得到了我想要在客户端看到的结果 但是当我连接 AnjLab SQL Profiler 并查看正在执行的 SQL 时 它看起来好像正在查询并将整个行集返回到客户 它真的会返回所有行 然后在客户端使
  • 从 WebBrowserControl 中单击的 HtmlElement 获取 XPath

    如何从 WebBrowserControl 中单击的 HtmlElement 获取 XPath 这是我检索单击的 HtmlElement 的方法 System Windows Forms HtmlDocument document this
  • 在Java中,是否有一个Runnable版本旨在在当前线程中执行?

    JavaDoc for Runnable 状态 已添加强调 Runnable 接口应该由任何其类实现 实例旨在由线程执行 该类必须定义一个名为 run 的无参数方法 该接口旨在为希望在活动时执行代码的对象提供通用协议 例如 Runnable
  • 在Python中重新组织数组元素

    如何重新组织元素A shape 1 7 2 生成新数组A1 shape 1 7 2 按增加的顺序j In A 0 0 array 0 1 j指的是1 in 0 1 如果有一些非常通用的东西那就太好了 这样代码就可以处理形状为A变得非常大 比
  • 如何找到已弃用方法的替代方法?

    我是 Android 编程新手 我一直在关注有关创建音乐播放器的教程这个网站 本教程要求setAudioStreamType方法来自MediaPlayer类是已弃用 哪种方法特别替代了这个已弃用的方法 并且 是否有一个来源可以让我们找到所有
  • p:commandButton 操作和 f:setpropertyactionlistener 未在 p:columngroup 中调用

    我需要将子组件放入 primefaces 子表页脚 p columngroup type footer 中 但标准子表渲染器不提供这样的机会 所以我重写了 org primefaces component SubTableRenderer
  • 如何保护我的 Python 代码库,以便访客看不到某些模块,但它仍然可以工作?

    我们正在用 Python 启动一个新项目 其中包含一些我们希望保密的专有算法和敏感逻辑 我们还将有一些外部人员 精选的公众成员 参与代码工作 我们不能授予外部人员访问小型私有代码的权限 但我们希望公共版本能够为他们提供足够好的工作空间 假设
  • 使用 TypeScript 类编写 Angular 指令

    我可能只是试图一次结合太多 新的 概念 但我正在尝试使用 TypeScript 类编写自定义 Angular 指令 目前 我并不想做任何非常有用的事情 只是做一个 POC 我有一个如下所示的 TypeScript 文件 module App