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

时间:2014-03-19 07:40:42

标签: angularjs angularjs-directive default angularjs-scope

我在这里看到了很多关于为指令的隔离范围设置默认值的不同描述。但是最好的方法是什么,我应该在哪里做到这一点。 在控制器或预链接或后链接功能中它更好吗? 我应该将default-values设置为link-或compile-functions中的属性还是直接设置为范围?

1 个答案:

答案 0 :(得分:0)

您应该使用AngularJS指令文档开始研究,特别是关于isolating the scope of a directive的部分。

就我自己而言,我更喜欢在指令中使用attribut 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.
    }
  };
});

然后,在HTML中初始化您的指令:

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

您告诉指令使用HTML属性scope.customerInfo

的值初始化info

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