У меня есть меню, которое появляется, когда я нажимаю кнопку. Ну, в это меню у меня есть пары пролетов: icon-title. Довольно просто, наверное.
Ну, так или иначе, эти промежутки не называют мой метод контроллера, когда я нажимаю на них. Я попытался обернуть эти пары в div и установить ng-click на них, но это тоже не сработает.
Это мое контекстное меню:
<div class="opciones" ng-hide="optionsHide">
<div>
<span class="glyphicon glyphicon-lock icono"></span> <span class="optionsLabel">Encrypt</span>
</div><br>
<div ng-click="removeNote()">
<span class="glyphicon glyphicon-trash icono"></span><span class="optionsLabel"> Delete</span><br>
</div><br>
<div>
<span class="glyphicon glyphicon-wrench icono"></span><span class="optionsLabel"> Options</span>
</div>
</div>
В настоящее время я сосредоточен только на функции removeNote(). У меня есть как угловые, так и узловые методы, готовые к тестированию, но я просто не могу их использовать, так как я не могу выполнить щелчок.
Это функция внутри рабочего контроллера:
$scope.removeNote = function(){
$http.post('/removeNote', $scope.mainNote).success(function(data){
console.log("Note removed");
console.log(data);
loadNotes();
}).error(function(err){
console.log("ERROR ON DELETE");
console.log(err);
});
}
Почему ng-click не вызывает эту функцию? Я что-то упускаю?
редактировать:
Объявление контроллера:
Верхний контроллер:
app.controller('mainCtrl', ['$scope', '$http', '$filter', 'focus', function($scope, $http, $filter, focus){
Внутренне:
app.controller('contentCtrl', ['$scope', '$q', '$timeout', function($scope, $q, $timeout) {
Использование:
<body ng-controller="mainCtrl" ng-cloak>
// Things
<content ng-controller="contentCtrl">
// My contextual menu as shown above
Фактически, этот метод находится внутри другого контроллера (да, два вложенных контроллера), но остальные наследуемые функции работают правильно; единственный, который не работает, - это один. В любом случае, я продолжаю видеть нормальный указатель, когда я нажимаю мышь на div/пару пролетов, поэтому он вообще не применяется (я вижу это в HTML-консоли tho).
Попробуйте изменить строку ng-controller:
<body ng-controller="MainCtrl as vm">
Затем ваш метод вызовет:
<div ng-click="vm.removeNote()">
Работает ли он сейчас, дает ли console.log что-то?