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谢谢,我不知道嵌套指令共享相同的隔离范围。不用担心。我们很多人都不知道;)非常感谢。我怎么会错过呢?