作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JavaScript 对象的链接列表,我想从中生成面包屑。
因为我在递归指令中使用列表,所以我需要使用 $_prev 和 $_next (而不是 prev 和 next),这样我就不会收到有关循环引用的 JSON.parse 错误。
var myapp = angular.module('myApp', []);
var data00 = { id: 0, label: 'label_0' }
var data01 = { id: 1, label: 'label_1' }
var data02 = { id: 2, label: 'label_2' }
data00.$_next = data01;
data01.$_next = data02;
data01.$_prev = data00;
data02.$_prev = data01;
myapp.controller('testController', function($scope){
$scope.data = data02;
$scope.getBreadCrumbs = function(branch){
var crumbs = branch.label;
while(branch.$_prev){
branch = branch.$_prev;
crumbs = branch.label + ' \\ ' + crumbs;
}
return crumbs;
}
});
在 Chrome 中一切正常,但在 IE8 中 getBreadCrumbs 函数 $_prev 属性不存在。
任何关于如何调试问题的意见将不胜感激。
最佳答案
我不确定你的 IE8 问题,但恕我直言,你的方法不是很好。我相信,通过使用更好的方法,您将减少 future 的开发/维护,并且很可能消除 IE8 的错误。我要做的就是把你所有的 dataxx
对象放入单个数组,然后使用函数或 Angular Directive(指令)从该数组创建面包屑。
我强烈劝阻你不要做这样的事情
data00.$_next = data01;
data01.$_next = data02;
data01.$_prev = data00;
data02.$_prev = data01;
因为当您添加更多数据点时,不必要的工作就会增多。您可以使用数组的长度来查看您是否位于第一个/最后一个面包屑上,或者使用 $first
$last
Angular 为您提供的属性 ng-repeat
关于javascript - 当对象传递回 Controller 函数时,AngularJS 正在删除我的 $_parent 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458469/
我是一名优秀的程序员,十分优秀!