我試圖創建一個指令,被稱爲選擇它將替換選擇元素。更確切地說,它隱藏了select元素並顯示一個自定義下拉菜單。這裏是我試圖做到的jsfiddle。試圖transclude選擇元素
所以,假設以下選擇元素:
<select ng-model="selectedOption">
<option ng-repeat="option in options" ng-bind="option.value"></option>
</select>
現在,這選擇指令應transclude此代碼到下面的模板:
<section>
<div ng-transclude></div>
<ol> <!-- custom dropdown/select -->
<li ng-repeat="option in options" ng-bind="option.value">
</ol>
</section>
而且指令:
myApp.directive('select', function() {
return {
templateUrl: 'view/select.html',
restrict: 'E',
transclude: true,
scope: {},
link: function(scope, element, attrs) {}
};
});
現在,我看到了幾個問題:
- 的transclude似乎更換整個模板(見jsfiddle)
- 有一個奇怪的
option
元素 - 我怎麼綁定的數據,因爲我需要創建自定義下拉
希望有人能幫助我在這裏!
日Thnx
更新:只是要明確,我想transclude選擇元素的原因是因爲從魔法。例如,如果用戶在自定義下拉列表中選擇了一個選項,該指令將在隱藏的本地選擇元素中選擇此選項。這樣,形式東西像$ prestine是up2date
更新2:找到一種方法來做更多或更少我需要的:jsfiddle。但是,我必須現在重命名指令:(它感覺有點像我得到選項數組的方法!
您可能想要簽出ng-options指令,它可能會提供創建所需內容的提示。ng-options是over ng-repeat的「首選」方式 –
我看不到ngOptions要解決哪個問題? –