以下示例非常简单(在sp00m更正前一个示例响应后编辑):
index.html :(部分)
<table>
<tr ng-repeat="r in [1,2,3]">
<td ng-repeat="c in [1,2]" ng-mouseenter="name='John'">
[{{r}},{{c}}]
</td>
</tr>
</table>
Hello {{name}}!
app.js:
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
我期待世界&#39;这个词改成了约翰&#39;被显示但当我将鼠标移到牢房时没有任何事情发生。
我在下面张贴plnkr来显示问题。
我究竟做错了什么?!我错过了什么?
AngularJS 1.5.x plnkr的问题是否在ng-mouseenter
中无法处理<td>
?请注意,ng-repeat不是问题 - 当我手动添加新行时,这也不起作用。
答案 0 :(得分:4)
它实际上正在运作,您只是在alert
中未定义$scope
:
$scope.alert = function (...) { ... };
答案 1 :(得分:1)
实际上我有同样的问题,我避免使用像$scope.name
这样的普通范围变量,它可能会产生一些问题。所以在上面的plunker中,声明一个范围对象,就像这个$scope.name = {firstName: 'World'}
而不是普通的范围变量。然后在html中使用此ng-mouseenter="name.firstName='John';"
,它应该使用此Hello {{name.firstName}}
。