为什么这个 不起作用?

14 浏览
0 Comments

为什么这个 不起作用?

下面的例子非常简单(在sp00m更正之后进行了编辑以纠正先前的示例响应):

index.html:(部分)

[{{r}},{{c}}]
Hello {{name}}!

app.js:

app.controller('MainCtrl', function($scope) {
    $scope.name = 'World';
});

我期望将'World'一词更改为'John'并显示,但是当我将鼠标悬停在单元格上时没有发生任何事情。

我在下面发布了plnkr以展示问题。

我做错了什么?我漏掉了什么?

是AngularJS 1.5.x plnkr使用的问题,它无法处理

中的ng-mouseenter吗?请注意,ng-repeat不是问题-当我手动添加新行时也不起作用。

http://plnkr.co/edit/x1peSJyc50yqa1AM73GZ

0
0 Comments

为什么这个

不工作?

原因:在这个问题中,使用了普通的scope变量$scope.name,这可能会导致一些问题。

解决方法:在上面的例子中,声明一个scope对象$scope.name = {firstName: 'World'}代替普通的scope变量。然后在html中使用ng-mouseenter="name.firstName='John';",并且这个Hello {{name.firstName}}应该正常工作。

另外,某些情况下使用点表示法(即对象)是首选的方法。可以在这个链接stackoverflow.com/questions/12618342/…中逐一查看答案,可以获得更好的理解。

对于Santhi来说,当她改成一个结构后,它就工作了,这有点令人沮丧!我仍然想知道为什么。这是AngularJS的一个bug吗?非常感谢你的回复。

0
0 Comments

这个问题的出现原因是没有在$scope中定义alert函数。解决方法是在$scope中定义alert函数,如下所示:

$scope.alert = function (...) { ... };

另外,原作者希望使用javascript中的alert函数。如果想要简单地替换为"x=10"并显示x的值,这个方法对原作者来说不起作用,所以原作者将其替换为alert函数。

0