Angularjs 为指令的隔离范围设置默认值的最佳方法是什么

Angularjs 为指令的隔离范围设置默认值的最佳方法是什么,angularjs,angularjs-directive,default,angularjs-scope,Angularjs,Angularjs Directive,Default,Angularjs Scope,我在这里看到了许多关于为指令的隔离范围设置默认值的不同描述。但是什么是最好的方法,我应该在哪里做呢。 在控制器中还是在预链接或后链接功能中更好? 我应该将默认值设置为链接或编译函数中的属性还是直接设置为作用域?您应该从AngularJS指令文档开始研究,特别是关于 就我自己而言,我更喜欢在指令中使用attributescope,如下所示: directive('myCustomer', function() { return { restrict: 'E', // Our dire

我在这里看到了许多关于为指令的隔离范围设置默认值的不同描述。但是什么是最好的方法,我应该在哪里做呢。 在控制器中还是在预链接或后链接功能中更好?
我应该将默认值设置为链接或编译函数中的属性还是直接设置为作用域?

您应该从AngularJS指令文档开始研究,特别是关于

就我自己而言,我更喜欢在指令中使用attribute
scope
,如下所示:

directive('myCustomer', function() {
  return {
    restrict: 'E',  // Our directive must be describe as Element <myCustomer>.
    scope: {
      customerInfo: '=info'
    },
    link: function(scope, element) {
      console.log(scope.customerInfo); // Should display 'Naomi' in our example.
    }
  };
});
指令('myCustomer',函数(){ 返回{ restrict:'E',//我们的指令必须描述为元素。 范围:{ customerInfo:'=信息' }, 链接:功能(范围、元素){ console.log(scope.customerInfo);//在我们的示例中应该显示'Naomi'。 } }; }); 然后,在HTML中初始化您的指令:

<my-customer info="naomi"></my-customer>

您告诉指令使用HTML属性
info
的值初始化
scope.customerInfo


我不知道这是否是初始化指令的最佳方式,但我认为这几乎是一种干净的方式。

您的问题有点宽泛,很难回答,因为这取决于您的用例。你能说得更具体些吗?也许举个例子吧?对不起,我在寻找这个问题的一般答案。目前,我正在编写一个scrollbar指令,它比普通的scrollbar有更多的选项。这里我有独立的作用域变量方向(垂直或水平)、最小值、最大值、范围。。。作为默认值,我希望方向为竖直,最小值为0,最大值为100,范围为10@Anders EkdahlI,我想你不明白我的意思。在您的示例中,我正在寻找将默认值设置为customerInfo的最佳方法,当您仅键入@不,我不知道这个细节。我已经用叉子叉了这条路。
作用域:{}
将指令作用域与控制器隔离。您可以对其进行注释,以查看指令模板中设置的控制器值。