当前位置: 首页 > 面试题库 >

更改数组时ng-repeat不更新

祁嘉木
2023-03-14
问题内容

我有一个ng-repeat,它在更改正在使用的数组中的数据时不会更新。我已经研究了一段时间,但似乎没有任何效果。最初,当页面加载时,ng-
repeat显示数据集的第一页,在获取新数据(下一页)并使用该数据设置该数组时,ng-
repeat不会注意到更改,并且永远不会填充更新的数组。如果有人可以在正确的方向上指导我,将不胜感激。

gatekeeper.controller('businessController', ['$scope', 'siteService', function($scope, siteService) {

$scope.page = 1;
$scope.resultsPerPage = 50;
$scope.maxPaginationSite = 10;
$scope.pageCount = 0;
$scope.resultCount = 0;
$scope.getBusinessSites = [];

function getBusinessSites()
{
    siteService.getBusinessSites($scope.page, $scope.resultsPerPage).then(function(response) {
        $scope.getBusinessSites = response.data;
        console.log($scope.getBusinessSites);
        $scope.resultCount = response.data[0].QueryCount;
        $scope.page = response.data[0].Page;
        $scope.pageCount = Math.ceil($scope.resultCount / 50);
    });
}
getBusinessSites();
$scope.pageChanged = function () {
    $scope.page = this.page;
    getBusinessSites($scope.page, $scope.resultsPerPage);

};

}]);

<tbody ng-controller="businessController">

        <tr ng-repeat="site in getBusinessSites">
            <td>{{ site.SiteName }}</td>

            <td class="tableButton">

                <button ng-controller="ModalCtrl" type="button" class="btn btn-default" ng-click="open('lg')">
                    {{ site.ClientName }}
                </button>

                <br />
                <b>Facilities:</b>

                No Data Yet

            </td>

            <td>{{ site.Subdomain }}</td>

            <td>
                <a href={{ site.URL}}> {{ site.URL}} </a>

                <br />

                <b>Go-live Date: </b> No Data Yet

            </td>

            <td>No Data Yet</td>
            <td>{{site.ChannelPartner}}</td>
            <td>No Data Yet</td>
            <td>No Data Yet</td>
            <td>No Data Yet</td>
            <td>No Data Yet</td>
        </tr>
        <div >
            <uib-pagination class="pull-right" boundary-link-numbers="true" max-size="maxPaginationSite" boundary-links="true" total-items="resultCount" ng-model="page" ng-change="pageChanged()"></uib-pagination>
        </div>
    </tbody>

问题答案:

尝试将tbody包装在div中,但将控制器包装在div中:

<div ng-controller="BusinessController">
    <tbody>   
        <tr ng-repeat="site in getBusinessSites">
        .
        .
        .
    </tbody>
</div>

我建议将$ scope.getBusinessSites命名为$ scope.businessSites以避免混淆:)



 类似资料:
  • 问题内容: 我正在通过ng-repeat循环渲染数据。而且我希望它在更新数组时进行更新。从我阅读的内容来看,这应该会自动发生,但是这是行不通的。那我在做什么错? 的HTML: 控制器(此功能通过ng-click在按钮上触发): Console.log显示该数组已正确更新,但是我视图中的表未更改。我不知道我在做什么错。 问题答案: 那是因为您在method中更改了数组引用。 为了避免这种情况,我们使

  • 问题内容: 当我尝试更新 ng-click 上的数组以更新ng-repeat的指令项时: selectL2menu() 在控制器上定义为: 单击一级菜单项后,它应立即显示带有相应元素的二级菜单块(通过使用相应值更新数组,请参见下文)。这是我需要在单击时更新的第二级菜单块: 点击事件触发时-我的阵列成功更新。但是,ng-repeat指令未更新我的第二级菜单(基于更新数组)。我尝试使用(和不使用)$

  • 问题内容: 我很困惑。为什么当ajax调用更改其值时,我的ng-repeat为什么不刷新?我在这里看到过很多问答,但是没有人谈论ajax调用。 HTML: JS: 控制台确实记录了服务器返回的阵列。但是html中的列表从未更新。如果使用,则会发生有关错误。 控制台输出 这就是服务器返回的结构。会是数据类型的问题吗?因为它不是。我将Golang用作服务器,并用于打包来自MongoDB的数据。 更新资

  • 我最近从我的windows机器换成了iMac,我把我的angular项目复制到Mac上,并按照所有的安装说明操作,但现在当我键入NPM start时,项目开始了,但当我保存文件时并没有更新。 我已经卸载了angular-cli并将其安装到最新版本 角度-CLI:1 . 0 . 0-β21 节点:6.9.1 操作系统:达尔文x64 我也安装了守夜人,但没有成功。 我杀ng服的时候,网站直接给出错误

  • 问题内容: 输入如下: 当我手动键入并更改输入时,将执行。但是,如果我以编程方式通过其他功能更改了repair.test值,则不会触发ng- change的操作。我已经阅读了角度教程,这可能是预期的行为。 https://docs.angularjs.org/api/ng/directive/ng更改 “当值更改来自模型时,不评估表达式。” <-我也需要这个。模型以任何方式更改时,如何在控制器中触

  • 问题内容: 我想基于变量在Angular.js ng-repeat上显示不同的limitTo数字。 这是我的代码: 并在控制器中: 我只能假设有一种基于搜索输入来更改limitTo的更优雅的方法,我只是不知道要寻找什么。 您可以在http://happinesshunt.co上看到此代码的实现。 PS:我是新来的,而且是开发的新手,所以,如果未正确提出问题,请原谅我。 谢谢你! 问题答案: 这可能