ng-click不能与我的任何div一起使用

时间:2017-03-10 08:50:54

标签: javascript html css angularjs

我有一个简单的无序列表,其中填充了ng-repeat,我希望每次用户点击其中一个列表项时都会发生一些事情。但是,ng-click似乎不能与我的html中的任何div一起使用,它只适用于按钮。起初我认为问题在于ng-repeat,但事实证明,即使在ng-repeat ng-click之外也似乎不起作用。我也尝试过使用ng-mousedown,它似乎也没有用。

这是我的HTML:

<div class="noteItem" ng-mouseleave="btnShow = false" ng-mouseenter="btnShow = true" ng-click="alert('click');">
    <li>
        {{note.subject|removeHTML}}<a ng-show="btnShow" ng-click="deleteNote(note._id)"><i>DELETE</i></a>
    </li>
</div>

我也试过在这个div之外包装另一个div但是它仍然没有用。我一直坚持这个问题大约一个小时了。

3 个答案:

答案 0 :(得分:0)

您已在div中进行了ng-click,并且在<a>元素中,正在执行的元素位于<a>元素中,而不是div中的ng-click。

尝试添加这样的div并尝试点击。

<div ng-click="yourScopeMethodHere()">click me</div>

BTW,在ng-click中直接调用JS alert()将无效。

答案 1 :(得分:0)

当执行ng click时,它会查找范围函数和表达式。警报和控制台都没有记录,所以它不会像这样执行。您可以做的是创建一个范围函数并在该函数内调用警报。

答案 2 :(得分:0)

由于父元素(ng-click)上也有<div>,因此点击将触发。您可以使用ng-click

取消对该孩子的父$event.stopPropagation()

<div ng-mouseleave="btnShow = false" ng-mouseenter="btnShow = true" ng-click="alert('click');">
    <li>
        {{note.subject|removeHTML}}
        <a ng-show="btnShow" ng-click="$event.stopPropagation(); deleteNote(note._id)"><i>DELETE</i></a>
    </li>
</div>

作为旁注,ng-click="alert('click')将寻求$scope.alert(),如果您希望打开JavaScript基本警报......; - )