模型更新不会始终触发

时间:2014-04-15 16:08:01

标签: angularjs

我正在经历一些非常特殊的行为 - 我很有棱角分明,为了免除你的问题,我尽我所能找到解决方案,但是经过几个小时后,我觉得是时候放弃并问。

代码汇总:字母数组,循环(ng-repeat),每个字母都链接到一个名为clickLetter()的函数,此函数设置一个$ scope变量,反映当前选择的字母。

问题:负责显示当前活动字母的型号/变量一直没有更新,它似乎有时会随机更新。

Code (plunker)

我的猜测是,angular不会更新模型(双向数据绑定?)吗?

2 个答案:

答案 0 :(得分:1)

看起来<a>标记正在触发路由更改。向其添加$event.preventDefault()或完全删除<a>。 (似乎并没有添加任何价值)......

<div class="ui icon button padding5" ng-class="{'active': letter == activeLetter}" ng-repeat="letter in letters" ng-click="clickLetter(letter, $event)">
    <a href="#" ng-click="$event.preventDefault()">{{letter}}</a>
</div>

<div class="ui icon button padding5" ng-class="{'active': letter == activeLetter}" ng-repeat="letter in letters" ng-click="clickLetter(letter, $event)">
    {{letter}}
</div>

答案 1 :(得分:0)

问题是,当您单击字母而不是按钮时,链接会停止鼠标单击的传播。 在css文件中添加此类并应用于<a>标记,其中包含字母:

.ignore-mouse-event {
  pointer-events: none;
} 

<a>标记应更改为:

<a href="#" class="ignore-mouse-event">{{letter}}</a>