[英]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.