将角度指令链接功能作为预链接?

时间:2015-11-24 12:17:25

标签: javascript angularjs angular-directive angular-directive-link

我有一个指令链接功能。默认情况下,角度链接函数是一个后链接函数,不是吗?如何将其作为预先链接?

app.directive("textBoxCol", function () {
        return {
            require: "^grid",
            restrict: "E",
            replace: true,
            scope: {
                title: "@title",
                cssClass: "@class",
                dataField: "@field"
            },
            link: function ($scope, element, attrs, grid) {
                $scope.type = ColumnType.TextBox;
                tableControl.addColumn($scope);
            }
        };
    });

BTW,它使用require。

1 个答案:

答案 0 :(得分:0)

您需要实现compile函数并从中返回prelink函数。

取自Angular的文档(https://docs.angularjs.org/api/ng/service/%24compile):

compile: function compile(tElement, tAttrs, transclude) {
  return {
    pre: function preLink(scope, iElement, iAttrs, controller) { ... },
    post: function postLink(scope, iElement, iAttrs, controller) { ... }
  }
  // or
  // return function postLink( ... ) { ... }
},