angularjs限制指令范围

angularjs限制指令范围,angularjs,Angularjs,我有三个控制器,一个父控制器和两个嵌套控制器,它们是DOM中的同级控制器。它们都包含一个名为“定制”的属性。这两个嵌套控制器使用一个指令来创建DOM元素并将其绑定到“Customization”属性。我的问题是,对一个嵌套控制器中绑定DOM属性的值的更改正在更改其兄弟嵌套控制器中的值 我假设这与指令的范围有关。我希望将指令的范围限制在单个控制器上,以免影响父控制器或任何同级控制器 有什么建议吗?您可以在指令中指定控制器 app.directive( 'directive', function (

我有三个控制器,一个父控制器和两个嵌套控制器,它们是DOM中的同级控制器。它们都包含一个名为“定制”的属性。这两个嵌套控制器使用一个指令来创建DOM元素并将其绑定到“Customization”属性。我的问题是,对一个嵌套控制器中绑定DOM属性的值的更改正在更改其兄弟嵌套控制器中的值

我假设这与指令的范围有关。我希望将指令的范围限制在单个控制器上,以免影响父控制器或任何同级控制器


有什么建议吗?

您可以在指令中指定控制器

app.directive( 'directive', function () {
  return {
    controller: 'CtrlName'
  };
});
app.directive('directive', function() {
  return {
    scope: {},
    controller: ['$scope', function($scope) {
      $scope.customisation = ...
    }]
  };
})
或者,您可以为该指令创建自己的范围

app.directive( 'directive', function () {
  return {
    controller: 'CtrlName'
  };
});
app.directive('directive', function() {
  return {
    scope: {},
    controller: ['$scope', function($scope) {
      $scope.customisation = ...
    }]
  };
})

嗨,谢谢你的反馈。如果我使用同一指令两次会怎样?一旦进入每个嵌套控制器的范围。可能吗?