因此,我查看了许多其他类似的问题,但没有找到一个似乎涵盖了我正在尝试做的事情。
我在指令中使用模板来创建自定义下拉菜单,其中包含搜索框等花哨的东西。为此,我必须使用template
; 我不能只使用compile
with element.replaceWith
(如果我使用参数,我可以让它工作compile
,attrs
但是自定义模板不起作用)。
我要做的就是根据自定义标记中属性的内容选择特定的选项数组:
HTML:<customdropdown useoptionset="first"></customdropdown>
JS:
angular.module('ui.bootstrap', [])
.constant('customdropdownConfig', {
//bunch of properties here
})
.directive('customdropdown ', ['$parse', 'customdropdownConfig', function ($compile, customdropdownConfig) {
return {
restrict: 'EA',
replace: true,
template: (function(conf) {
var optionset = //how can i access the useoptionset attribute here?
var options = //stuff involving useoptionset and conf
return '<select ui-select="customDropdown">' + options + '</select>';
}(customdropdownConfig))
};
}])
在我看来,这应该是一个非常常见且明显的用例,但也许我错过了有关 Angular 工作原理的一些内容。