[英]Angular Controller/Provider setup not exposing variable to front-end
[英]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.