的结果是否有任何表面上的问题,与下面的代码片段:Angular.js看一个函数调用
<ul id="entry-name" class="breadcrumb">
<li ng-repeat="dir in pathElements()" class="active">
<span ng-show="!$last">
<a href="#!?path={{dir.url}}">{{ dir.name }}</a> <span ng-show="!$first" class="dividier">/</span>
</span>
</li>
<li class="active">{{ pathElements()[pathElements().length - 1].name }}</li>
</ul>
这个JS:
$scope.pathElements = function() {
var retval = [];
var arr = $scope.currentPath().split('/');
if (arr[0] == '') {
arr[0] = '/';
}
var url = "/";
retval.push({name: arr[0], url: url});
for (var i = 1; i < arr.length; ++i) {
if (arr[i] != '') {
url += arr[i] + '/';
retval.push({name: arr[i], url: url});
}
}
return retval;
};
这似乎是造成“错误: 10 $ digest()迭代达到。中止!“错误,但我不知道为什么。是否因为pathElements()每次都返回一个新数组?有没有办法解决这个问题?
您认为缓存路径数组是否有意义?你正在调用这个函数3次。除此之外,你有没有想过使用$ routeParams? – 2013-03-19 07:15:13
@Flek我分裂的“路径”不是实际的url路径,它是一个传递给url的参数(比如'localhost:8000 /#?path =/some/path')但是,对,应该可以缓存它。 – Alec 2013-03-19 22:13:38