Angularjs 如何访问指令';是否从另一个指令删除ngModelController?

Angularjs 如何访问指令';是否从另一个指令删除ngModelController?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,如何从另一个指令访问指令的ngModelController 场景 我正在创建一个提前输入小部件,它由typeAhead指令和autoCompletePopUp指令组成。 AutoCompletePopUp指令将使用typeAhead的控制器与typeAhead交互 但是我不知道如何在选中某个项目时从autoCompletePopUp调用typeAhead的$setViewValue。为什么不为typeAhead的控制器添加一个函数,该函数本身调用$setViewValue。在typeAhead

如何从另一个指令访问指令的
ngModelController

场景

我正在创建一个提前输入小部件,它由
typeAhead
指令和
autoCompletePopUp
指令组成。
AutoCompletePopUp
指令将使用
typeAhead的控制器与
typeAhead
交互


但是我不知道如何在选中某个项目时从
autoCompletePopUp
调用
typeAhead的$setViewValue

为什么不为
typeAhead
的控制器添加一个函数,该函数本身调用$setViewValue。在
typeAhead的
控制器的上下文中,您应该可以访问范围。如果需要,您可以将
typeAhead
的ngModelController放在作用域上。大概是这样的:

angular.module("myModule").directive("typeAhead", function() {
   return {
      require: "ngModel",
      controller: function($scope) {
         this.setValue = function(value) {
            $scope.ngModelController.$setViewValue(value);
         };
      },
      link: function(scope, element, attributes, ngModelController) {
         scope.ngModelController = ngModelController;
      },
   };
});

angular.module("myModule").directive("typeAhead", function() {
   return {
      require: "typeAhead",
      link: function(scope, element, attributes, typeAheadController) {
         scope.someAction = function(value) {
            typeAheadController.setValue(value);
         };
      },
   };
});

(防止缩小,并根据需要将控制器移动到单独的对象/文件中;为方便起见,在这里内联完成)

这些在这个主题上帮助了我很多:,@TrazeK谢谢,我不知道嵌套指令共享相同的隔离范围。不用担心。我们很多人都不知道;)非常感谢。我怎么会错过呢?