首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前处理-重复变量?

前处理-重复变量?
EN

Stack Overflow用户
提问于 2015-02-09 12:03:29
回答 2查看 240关注 0票数 1

我使用ng-重复打印输出的div。bCrumbs集合中的元素从斜杠和空格开始,我想从第一次循环迭代中删除它们。

我的守则:

代码语言:javascript
复制
<div ng-repeat="bCrumb in bCrumbs" id="{{bCrumb.name}}">{{ bCrumb.name }}</div>

来自{{ bCrumb.name }}的输出

代码语言:javascript
复制
/ Test1
/ Test2

预期产出:

代码语言:javascript
复制
Test1
/Test2
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-09 12:16:40

您可以使用ng-repeat-startng-repeat-end

代码语言:javascript
复制
<div ng-repeat-start="bCrumb in bCrumbs" ng-if="$first>
    {{ beautify(bCrumb.name) }}
  </div>
  <div ng-repeat-end ng-if="!$first">
    {{ bCrumb.name }}
  </div>

此外,在控制器中定义一个名为beautify的函数:

代码语言:javascript
复制
$scope.beautify = function (name) {
  return name.replace('/ ', '');
};

您可以阅读详细的文档这里

更新

处理字符串美化的一个更好的方法是创建一个过滤器来处理它。

代码语言:javascript
复制
app.filter('beautify', function () {
    return function (data) {
        return data.replace("/ ", "");
    };
});

然后在视图模板中:

代码语言:javascript
复制
  <div ng-repeat-start="bCrumb in bCrumbs" ng-if="$first>
    {{ bCrumb.name | beautify }}
  </div>
  <div ng-repeat-end ng-if="!$first">
    {{ bCrumb.name }}
  </div>
票数 2
EN

Stack Overflow用户

发布于 2015-02-09 12:46:40

我认为你应该改变你的控制器(或者任何正在产生bCrumbs的东西),在到达视图之前去掉斜线。这样,它将更易于测试,并且(希望)更清晰。你可以这样做:

代码语言:javascript
复制
function strip(s) {
    if(s.indexOf('/ ') === 0) {
        return s.substring(2);
    } else {
        return s;
    }
}
$scope.bCrumbs = originalBCrumbs.map(function(bc, idx) {
    return idx === 0 ? strip(bc) : bc;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28409338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档