Angularjs:为什么ng-repeat做了太多工作?

 手机用户2502908277 发布于 2023-02-09 22:50

我不明白为什么ng-repeat似乎在做不必要的工作.

我已经实现了一个小的导航菜单示例来显示我的意思.我创建了一个包含控制器(NavCtrl)的Angular模块,其中我:

    在$ scope中填充导航菜单数据,和

    创建一个函数,该函数根据是否选择了指定的菜单项返回一个类.注意:这非常类似于Stackoverflow问题中的代码,它看起来像是一种实现基于散列的通用导航菜单概念的好方法(如果你知道一个,请指出一个更好的概念!).

我创建了一个我的例子的JSFiddle.

我的问题是:为什么ng-repeat循环会被执行三次?请注意我的Javascript方法中的控制台日志记录行navClass.当我在Chrome中运行它并只是加载HTML时,我得到以下输出:

evaluating route: home, against page: home testmod.js:29
evaluating route: home, against page: teams testmod.js:29
evaluating route: home, against page: events testmod.js:29
evaluating route: home, against page: venues testmod.js:29
evaluating route: home, against page: settings testmod.js:29
evaluating route: home, against page: home testmod.js:29
evaluating route: home, against page: teams testmod.js:29
evaluating route: home, against page: events testmod.js:29
evaluating route: home, against page: venues testmod.js:29
evaluating route: home, against page: settings testmod.js:29
evaluating route: home, against page: home testmod.js:29
evaluating route: home, against page: teams testmod.js:29
evaluating route: home, against page: events testmod.js:29
evaluating route: home, against page: venues testmod.js:29
evaluating route: home, against page: settings testmod.js:29

在我看来,ng-repeat循环运行了三次,在我的5项示例菜单列表中产生了15行输出,即使我的标记看起来应该只遍历项目一次:

     

解释或建设性的批评高度赞赏!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有