0
後、私はコンボボックスで使用可能なオプションにレンダリングするには、次の機能を持っているnullである:(なしitems
付き)最初の呼び出しのために親ノードが最初に追加操作
var optionsListElement = element.find('div.combobox-list'),
itemsElement = optionsListElement.find('ul.items-list');
function renderOptions(items) {
var parentElement = itemsElement.parent();
if (!items || items.length == 0) {
itemsElement = itemsElement.append($(
'<li class="no-bullet">No Option Available</li>'));
} else {
if (!scope.hasColumns) {
items.forEach(function (item, i) {
innerScope = createInnerScope({
item: item,
$first: i == 0,
$index: i,
$even: i % 2 == 0,
$odd: i % 2 != 0,
$last: i == item.length - 1
});
transclude(innerScope, function (rowTemplate, transcludeScope) {
// If there is not transclude rowTemplate, use default
if (rowTemplate.length == 0 || rowTemplate.length == 1 && rowTemplate[0].nodeType == 3 && rowTemplate[0]) {
rowTemplate = angular.element(
'<span title="{{ getText(item) }}" \
>{{ getText(item) }}\
</span>');
}
itemsElement.append(
$compile(angular.element(
'<li ng-click="focusAndSelectOption(item)"\
ng-class-even="\'even\'" ng-class-odd="\'odd\'"\
ng-class="{ selected: isSelected(item), focused: isFocused($index) }">\
</li>').append(rowTemplate))(transcludeScope)
);
});
});
}
}
parentElement.append(itemsElement);
}
を、機能が期待どおりに動作し、結合しli
、No Option Available
からitemsElement
までです。 parentElement
は、正しいターゲットdiv
を付加しているようです。しかしその後の呼び出しでは、parent()
はnull
を返し、parentElement
はオプションを追加できません。この機能を消費
div
構造は、次のようなものです:
<div class="combobox-list" style="visibility:hidden" >
<ul class="items-list" ></ul>
</div>
私はちょうどul
にli
アイテムをバインドしようとしていて、そこul
にバインドされたいくつかの属性ディレクティブがあるので、私がする必要がありますそれをコードから守ってください。誰かがこの問題で私を助けることができますか?
問題は、すべての 'ul'要素をクリーンアップしていた別の機能でした。だからこれは無関係になる –