NgRepeat在Heroku上显示错误的值

2024-09-29 17:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我开发了一个Django应用程序,它承载一些数据和登录,一旦登录,用户就会与Django内部的一个角度应用程序进行交互。在我的本地机器上,一切正常。在Heroku托管的应用程序上,除了一件奇怪的事情外,一切正常。有一个特殊的ng重复,它混淆了数值。所有应该显示在“索引”上的内容都显示在“索引-1”上。这种情况不会发生在我的本地托管应用程序上,而且会发生在我尝试过的每个浏览器的Heroku端。以下是我的控制器文件中的相关代码:

sc.getMembers = function() {
    //get the list of members
    sc.editMemberPanel = [];
    sc.notTheOwner = [];
    sc.kickOutConfirmPanel = [];
    var members = mf.query({'id': sc.$storage.id},function(data){
        sc.$storage.members = [];
        for(i=0;i<members.length;i++){
            sc.$storage.members.push({
                name: members[i].fields.name,
                role: members[i].fields.role,
                phone: members[i].fields.phone,
                email: members[i].fields.email,
                status: members[i].fields.status,
                pk: members[i].pk
            });
            sc.editMemberPanel[i] = false;
            sc.kickOutConfirmPanel[i] = false;
            //if you own the band, you shouldnt be able to change your own status or email (or kick yourself out!).
            if(sc.$storage.yourUsername != members[i].fields.userName){
                sc.notTheOwner[i] = true;
            } else {
                sc.notTheOwner[i] = false;
            }
        }

    });
}
sc.getMembers();

请注意,我还注入了$scope作为'sc'。以下是视图文件中的相关代码:

<div class="panel panel-info" data-ng-repeat="(index, member) in $storage.members | orderBy: 'status'">
    <div class="panel-header" style="padding:10px;">
        <strong>{{member.name}}</strong>
    </div>
    <div class="panel-body">
        <div data-ng-hide="editMemberPanel[index]">
            <table class="table">
                <tr>
                    <td>Role</td>
                    <td>{{member.role}}</td>
                </tr>
            ...
            <button data-ng-show="$storage.isManager && notTheOwner[index]" class="btn btn-danger btn-sm" data-ng-click="kickOutConfirm(index, true)"><span class="glyphicon glyphicon-ban-circle"></span> Kick out member</button>
        </div>
        <form class="form-horizontal" role="form" name="editMemberForm" data-ng-show="editMemberPanel[index]">
            <div class="form-group col-xs-12">
                <label for="name" class="col-sm-2 control-label">Name</label>
                <div class="col-sm-10">
                    <input type="text" name="name" class="form-control" placeholder="E.g. Margaret Thrasher" data-ng-model="editMember.name" required /><br />
                </div>
            </div>
...

有两个按钮(Kick out member和Edit member)。它们只在特定情况下显示。奇怪的是,当你点击它们时,它们在正确的索引上执行函数,所以我知道“index”变量是正确的。但是按钮显示在错误的成员下。每一个都在“索引-1”成员上。但是,它们被显示在正确的位置,所以就好像Angular拿着现有的按钮,并以某种方式推动它们。所有的div都是平衡的。我省略了几行代码(包括编辑成员按钮)。为什么希罗库把扣子弄混了?哦,值得注意的是,在基本html文件中,我包含了源代码中的Angular JS。 (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.js


Tags: namedivform应用程序fieldsdataindexstorage
1条回答
网友
1楼 · 发布于 2024-09-29 17:10:23

我的问题是,在显示项目和添加“show or hide”变量之前,我要遍历这些项目。然后这些项目在页面上以不同的顺序显示。迭代按插入日期进行,页面上的显示按字母顺序进行。通过显式声明迭代中每个项的索引,并按索引顺序显示它们,我能够解决这个奇怪的问题。我希望这能帮助别人。你知道吗

相关问题 更多 >

    热门问题