我应该使用编译或链接

Should I be using a compile or link?

本文关键字:链接 编译 我应该      更新时间:2023-09-26

我是一个新的角度,我仍然有问题确定我是否应该使用链接,编译甚至控制器在这种特定情况下。

我想做一个自定义指令来处理我的输入(它应该是隐藏的,需要的,等等)

例如:

<custom-input name="field1" errormessage="This is an error"></custom-input>

app.directive('customInput', function () {
  return {
    restrict: 'E',
    templateUrl: '/app/shared/views/custom-input.html',
    controller: function ($scope) {
      ..then something like 
        checkIfRequired(UseNameAttr);
        addProperMasking();
        setErrorMsg(UseAttr);
    }
  }
});

也许这是一个坏主意,我只是有很多字段可以隐藏/需要根据登录的用户。

我在想编译,因为逻辑只需要在视图被请求时完成一次。但是看了这么多书,我还是不确定。

你没有$scope在编译中可用,但它在链接期间可用。所以它可以归结为:你是否有一些逻辑,每个指令实例是不同的还是相同的?

根据你所说的,会有一个服务,isUserAuth(fieldName)这样的东西,它可以从编译中访问,并不依赖于范围/路由控制器