繁体   English   中英

角变量未在前端更新

[英]Angular variable not updating on front-end

我在angularjs中有一个应用程序,它运行无误,但是只有一个特定的变量传递给前端,该变量不会更新。 我已经在控制器中声明,填充并启动了它,但它仍然位于零:

(function () {
 "use strict";
 angular.module("HtJobPortal").controller("JobController", JobController);

    JobController.$inject = ["$scope", "$rootScope"];

    function JobController($scope, $rootScope){      
        var job = this;
        job.global = $rootScope;
        job.pendingCount = 0;
        job.penStr = "http://...";

        job.getPending = function () {
            $.ajax({
                method: "GET",
                crossDomain: true,
                url: job.penStr,
                dataType: "json",
                success: function (data) {
                    job.fillPending(data);
                    job.pendingCount = data.Data.length;
                }
            });
        }

        // Initialise pending and set roles
        job.init = function () {
            job.getPending();
        }
    };
    job.init();
    }
})();

应用程序的其余部分按预期工作,而job.fillPending(data); 可以正常工作并创建应有的表。 我在job.pendingCount = data.Data.length;上设置了一个断点 告诉我长度为1,但这从未反映在待处理的计数中,该计数保持为零。

HTML输出为:

<h3>Showing {{job.pendingCount}} Pending Bookings</h3>

如果更改了控制器开始处的初始创建变量,则不会更改。 (编辑:“作业”进行计数的原因是,当控制器附加到模板<main class="main" ng-controller="JobController as job">时,该控制器具有别名)

事件处理程序称为Angular的“外部”,因此,即使$ scope属性被更改,由于Angular不知道这些更改,因此视图部分也不会被更新。

在事件处理程序之后调用$ scope。$ apply()。 这将导致摘要循环运行,并且Angular将注意到您对$ scope所做的更改并更新视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM