簡體   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