我建議把你的跨度爲指令。那麼在鏈接函數中,您可以使用Angular的jqLite動態添加圖像下的下拉列表。但是,如果下拉的結構可以預先編寫的,只有它的數據是動態的,我建議你用hidding它NG-如果和一個可變
<span
id="dropdown-info"
ng-init= "myVar='images/info_icon_off.png'"
ng-mouseover="myVar='images/info_icon_on.png'"
ng-mouseout="myVar='images/info_icon_off.png'"
ng-click="doSomething()">
<img class="info-icon" ng-src="{{myVar}}" alt="Information" width="10" height="10">
<select ng-if="showDropDown" ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
</span>
填充它的選項,然後您的JS
var app = angular.module('app', []);
app.controller('TestController', ['$scope',
function($scope) {
$scope.showDropDown = false;
$scope.doSomething = function() {
$scope.showDropDown = true;
}
$scope.items = [{
id: 1,
label: 'aLabel',
subItem: { name: 'aSubItem' }
}, {
id: 2,
label: 'bLabel',
subItem: { name: 'bSubItem' }
}];
}
]);
這是一個沒有指令的方法。如果你使用多個跨度,那麼這將不起作用。然後您需要使用指令並應用相同的邏輯scope:{}
您想創建一個下拉菜單嗎?動態地顯示一個已經存在的?你想在哪裏顯示下拉菜單? –
動態,並在圖像下方 – KO12
我建議將您的跨度放入指令。那麼在鏈接函數中,您可以使用Angular的jqLite動態添加圖像下的下拉列表。但是,如果下拉列表的結構可以預先編寫,並且只有其數據是動態的,我建議你用ng -n來隱藏它,如果使用變量 –