在AngularJs中,自定义指令可以使用scope属性来定义作用域属性。scope属性有三种属性值:false、true和{}。当scope属性为false时,指令将使用父级作用域中的属性,即共享父级作用域。当scope属性为true时,指令将创建一个新的作用域,并从父级作用域中继承属性。当scope属性为{}时,指令将创建一个新的隔离作用域,并定义自己的属性。以下是示例:
app.directive('myDirective', function () { return { restrict: 'E', scope: false, template: '
app.directive('myDirective', function () { return { restrict: 'E', scope: true, template: '
app.directive('myDirective', function () { return { restrict: 'E', scope: { name: '@' }, template: '
其中,@符号表示指令与父作用域之间以字符串的形式传递数据。使用=符号,可以创建一个双向的数据绑定,将指令作用域中的属性绑定到父级作用域中。使用&符号,可以在指令作用域中定义一个函数,并在父级作用域中调用该函数。