Таким образом, у меня есть html-код, который использует угловую функцию ng-click
<div class="folder_icon" ng-click="selectFolder()">.....
И моя функция selectFolder() выглядит так:
$scope.selectFolder = function () {
$(".folder_icon").click(function () {
if ($scope.folder_select == false) {
$(this).parent().closest('div[class^="folder_nr_"]').css({
'border': 'solid',
'border-width': '1px',
'border-color': '#ff7d43',
'box-shadow': '0 0 20px #ff7d43'
});
$scope.folder_select = true;
}
else {
$(this).parent().closest('div[class^="folder_nr_"]').css({
'border': '',
'border-width': '',
'border-color': '',
'box-shadow': ''
});
$scope.folder_select = false;
}
});
};
Когда я использую эту функцию, мне нужно щелкнуть дважды из-за угловых функций ng-click и $.jQuery.click(). Могу ли я сделать свою функцию такой же, но без функции jquery click?
Вы должны делать это Угловым способом - и это действительно очень просто. Сначала создайте класс с правилами CSS, которые вы применяете выше:
.myClass {
border: solid
border-width: 1px
border-color: #ff7d43
box-shadow: 0 0 20px #ff7d43
}
Теперь примените этот класс к вашему элементу через ngClass
и переменную bool (folder_select
)
<div ng-class="{'myClass': folder_select}"></div>
Теперь, когда $scope.folder_select
имеет значение true, этот класс применяется. Теперь обновите свой угол:
$scope.selectFolder = function () {
$scope.folder_select = !$scope.folder_select;
}