我是Angular的新手,我一直致力于小项目。我有关于指令和ng-click的问题。
每次我点击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>
答案 0 :(得分:2)
看起来html无法访问setLock
函数。这是因为它是一个私有函数而不是通过vm公开。
尝试更改
function setlock() {
vm.locked = !vm.locked;
};
要
vm.setlock = function() {
vm.locked = !vm.locked;
};