同时打开共享相同指令的2个下拉列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同时打开共享相同指令的2个下拉列表相关的知识,希望对你有一定的参考价值。
我有一个名为X的angularjs下拉指令,当我开始在输入字段上输入时,它会打开并显示相关项。我的页面中有两个X指令,它们具有相同的控制器和模板(即相同的指令但不同的隔离范围)。
第一个指令显示行星列表,第二个指示显示正在键入的行星中的矿物列表。当我开始输入输入时,我想打开两个动态显示相关数据的指令。但由于他们共享相同的模板,我不知道如何打开第二个指令的下拉列表。
模板中只有一个ng-repeat,但是有两个不同范围的2个列表。我只想知道理解这一点的方法。谢谢。
答案
这里的指令将监听inpVal并更新指令中的列表(你需要将inpVal传递给指令)。
.directive("myCustomSelect", function(){
return {
restrict: "AE",
scope: {
inpVal: "="
},
link: function(scope, ele, attrs){
var _list = [];
scope.list = _list;
var _watch = scope.$watch("inpVal", function(n){
if(n){
updateList();
}
});
scope.$on("$destroy", function(){
_watch();
});
function updateList(){
var enteredVal = scope.inpVal;
//_.filter is underscore js
scope.list = _.filter(_list, function(v){
return enteredVal == v.name?true:false;
});
}
},
template: "<select ng-options="l.name as l for l in list"></select>"
}
})
以上是关于同时打开共享相同指令的2个下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
在单个父下拉类中打开 2 个引导下拉列表,但有 2 个不同的下拉列表