Я новичок в Angular, и я работал над небольшим проектом. У меня вопрос о директивах и ng-click.Угловые директивы (ngclick not firing)
Каждый раз, когда я нажимаю на тег div для установки функции setlock(), он никогда не срабатывает. Может ли это быть вызвано тем, что моя директива и контроллер находятся в отдельных файлах? И есть ли способ сделать эту работу, используя ссылку:?
Спасибо.
Directive.js
(function(){
'use strict';
angular
.module('widget.ballslot')
.directive('ballSlot', ballSlot);
function ballSlot(){
var directive = {
restrict: 'E',
scope: true,
templateUrl: 'app/widgets/ballslot.html',
controller: 'Ballslot',
}
return directive;
}
})();
Controller.js
(function(){
'use strict';
angular
.module('widget.ballslot')
.controller('Ballslot', Ballslot);
function Ballslot() {
var vm = this;
vm.locked = true;
function setlock() {
vm.locked = !vm.locked;
};
};
})();
page.html
<div data-ng-controller='Ballslot as vm' class='ball'>
<div id='background-purple' ng-click='vm.setlock()'>
<i class="fa fa-lock" ng-hide="vm.locked"> </i>
<i class="fa fa-unlock-alt" ng-show="vm.locked"></i>
</div>
</div>
Пожалуйста отправьте весь код, чтобы мы могли посмотреть. –
Извините, что – Msbart
вы должны быть осторожны с определением вашей директивы. Кажется, у вас есть работоспособный ответ, но у вашего кода есть еще одна тонкая проблема. вы фактически заявили свой контроллер ** дважды **, один раз в определении директивы и второй раз в HTML. Не совсем ясно, где вы планируете использовать эту директиву (вы не используете ее в этом примере кода), но когда вы используете эту директиву, она, скорее всего, не будет действовать так, как вы ожидаете. – Claies