首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-如果在ng内-在使用控制器功能时重复不工作

ng-如果在ng内-在使用控制器功能时重复不工作
EN

Stack Overflow用户
提问于 2016-02-24 14:51:58
回答 1查看 459关注 0票数 0

我有一个用户对象,它包含一个返回true或false的函数,如果要在我的模板中显示/不显示某些元素,我想在ng中使用它。它工作得很好,除非我把ng-如果在纳克-重复。然后它就停止工作了,我不知道为什么。函数在记录它们时返回正确的值,因此它不应该是函数的问题。我甚至尝试过用一个总是返回true的测试函数来切换它,但是即使这样也不起作用。

这是应该工作的测试函数:

代码语言:javascript
复制
vm.test = function() {
               return true;
          }

这是模板:

代码语言:javascript
复制
<div class="row" ng-controller="techniquesController as techniques">
    <div class="col-sm-10">
        <div class="card">
            <div class="card__header text-centered" style="overflow: hidden;">
                Tekniker
            </div>

            <div ng-if="!techniques.techniques.$resolved" class="center-align padding-xlarge">
                <i class="fa fa-spin fa-spinner text-large"></i>
            </div>

            <div class="padding-xlarge">
                <div ng-repeat="(category, techniques)  in techniques.techniquesGrouped">
                    <h2 class="h3 margin-top-large">{{category}}</h2>
                    <ul class="list list--striped list--hoverable list--compact">
                        <li class="show-at-hover__target" ng-class="{'list__item': true, 'divider-bottom': !$last}" ng-repeat="technique in techniques | orderBy:['Name']" tabindex="-1">

                            <div class="list__item__primary-content">
                                <div class="list__item__headline">{{technique.Name}}</div>
                            </div>

                            <div class="list__item__secondary-content">
                                <div class="button-group show-at-hover__element" ng-if="techniques.test() === true">
                                    <button ui-sref="technique({techniqueId:technique.Id})" class="button button--compact button--raised-third text-small" ripple><i class="fa fa-pencil fade-75"></i></button>
                                    <button ui-sref="techniqueDelete({techniqueId:technique.Id})" class="button button--compact button--raised-secondary text-small" ripple><i class="fa fa-trash fade-75"></i></button>
                                </div>
                            </div>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
    <!-- works fine below -->
    <div class="col-sm-2 center-align" ng-if="techniques.currentUser.IsAdmin()">
        <a ui-sref="techniqueNew" class="FAB application-main__fab">
            <i class="fa fa-plus"></i>
        </a>
    </div>
</div>

如果我替换这一行:

代码语言:javascript
复制
<div class="button-group show-at-hover__element" ng-if="techniques.test() === true">

使用

代码语言:javascript
复制
<div class="button-group show-at-hover__element" ng-if="'true' === 'true'">

很明显,它起作用了。但是,为什么我在使用ng时遇到问题--如果这对控制器有效,但只有当我将它放入ng-重复时,才会出现问题呢?我不明白为什么IsAdmin()或test()函数会在ng-重复之外工作,而不是在它内部工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 14:53:51

因为您要在您的techniques中重新分配ngRepeat变量-您的控制器别名正在被覆盖:

代码语言:javascript
复制
<div ng-repeat="(category, techniques)  in techniques.techniquesGrouped">

value属性更改为其他属性:

代码语言:javascript
复制
<div ng-repeat="(category, tech)  in techniques.techniquesGrouped">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35605409

复制
相关文章

相似问题

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