在AngularJS中编写direcitves的最佳方法是什么

时间:2015-12-22 16:10:48

标签: angularjs-directive

我正在尝试使用带有AngularJS的requireJS创建自定义指令。

以下是我要遵循的高级步骤。

  1. 配置requireJS。
  2. 使用requireJS定义导入。
  3. 创建一个模块。
  4. 使用此模块,创建一个指令。
  5. 在此指令中,根据需要创建控制器,控制器和链接选项。
  6. 在其他模块中使用此模块参考。
  7. 以下是以下片段:

    
    
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
    define(["angular", "components/trade/trade_controller"], function (angular, TradeController) {
        "use strict";
        var app = angular.module("csApp.trade.csTradeType", [""]);
    
    needed for logging wrapped around it.
        app.directive("csTradeType", function () {
            return {
                restrict: "E",
                templateUrl: "components/trade/_trade_type.html",
                controller: TradeController,
                controllerAs: "tradeController"
            };
        });
    });
    &#13;
    &#13;
    &#13;

    如果这是正确的方式或者指导我更好的方式,请你建议我。

    谢谢。

1 个答案:

答案 0 :(得分:0)

是的,这是创建指令的正确方法。但是,我将在下面添加与您的问题相关的评论:

每个指令必须在模块中注册。你在上面调用directive() 模块传递指令的规范名称和工厂函数 返回指令定义。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
angular.module('app', []).directive('myDir', function() {
return myDirectiveDefinition;
});
&#13;
&#13;
&#13;

可以向工厂函数注入指令使用的服务。

指令定义是一个对象,其字段告诉编译器指令的作用。一些字段是声明性的(例如,replace:true,它告诉编译器用模板中的内容替换原始元素)。某些字段是必需的(例如,link:function(...),它为编译器提供链接功能。