我正在为Angular使用神话般的UI Bootstrap但是很难获得onclick事件。
以下是代码:
<ul class="dropdown-menu" role="menu">
<li><a><img src='/Content/Images/dept_cargo.png'/> CARGO</a></li>
<li><a><img src='/Content/Images/dept_commercial.png'/> COMMJ</a></li>
<li><a><img src='/Content/Images/dept_executive.png'/> EXECJ</a></li>
<li><a><img src='/Content/Images/dept_travel.png'/> TVL</a></li>
</ul>
{{ currentDepartment }}
我尝试了所有组合:将ng-click =“behavior()”放在li,a和img中,但似乎没什么用。
我做错了什么?
(理想情况下,我只想更改范围变量的值,但我认为调用行为来做更好的练习)
这个问题与上面提到的不一样。另一个问题是与范围有关,而我很乐意能够执行alert();来自我的一个人。
答案 0 :(得分:1)
你必须在设置控制器的js代码中遇到问题,但如果你设置正确,你的html应如下所示:
<ul class="dropdown-menu" role="menu">
<li ng-click="behaviour()"><a><img src='/Content/Images/dept_cargo.png'/> CARGO</a>
</li>
<li ng-click="behaviour()"><a><img src='/Content/Images/dept_commercial.png'/> COMMJ</a>
</li>
<li ng-click="behaviour()"><a><img src='/Content/Images/dept_executive.png'/> EXECJ</a>
</li>
<li ng-click="behaviour()"><a><img src='/Content/Images/dept_travel.png'/> TVL</a>
</li>
</ul>
并在你的js:
function myCtrl($scope) {
$scope.behaviour = function () {
alert('asd');
};
}
这是一个工作样本:http://jsfiddle.net/97u2jp6d/1/
答案 1 :(得分:0)
<ul class="dropdown-menu" role="menu">
<li><a ng-click="behaviour()"><img src='/Content/Images/dept_cargo.png'/> CARGO</a></li>
确保您在控制器内部为该代码段定义了$scope.behaviour = function() {}
。
答案 2 :(得分:0)
你不需要更多:
HTML
<ul>
<li ng-click="doSomething()">item 1</li>
<li ng-click="doSomething()">item 2</li>
<li ng-click="doSomething()">item 3</li>
<li ng-click="doSomething()">item 4</li>
<li ng-click="doSomething()">item 5</li>
</ul>
控制器
$scope.doSomething = function () {
console.log('doing something');
}