我已經構建了一個簡單的AngularJS腳本,我想每隔10秒左右調用一次JSON數據包並更新變量。當我將它放在拉數據函數之外時,它可以工作。我可以發佈app.controller部分,它的工作原理。即使我粘貼了五次,然後改變了最後一次。我想在這裏問。AngularJS不使用Javascript函數更新ng-controller函數
首先這裏是我拉
{"FirstName":"Test","LastName":"Test"}
這裏JSON是腳本代碼:
<script>
// AngularJS - Init app variable
var app = angular.module("MyApp", []);
// AngularJS - Set default values to AngularJS variables
app.controller("MyCTRL", function ($scope) {
$scope.FirstName = "-";
$scope.LastName = "-";
});
var getJSON = function (url, callback) {
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "json";
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
callback(null, xhr.response);
} else {
callback(status);
}
};
xhr.send();
};
function pulldata() {
getJSON("<thejsonurl>",
function (err, data) {
if (err != null) {
//error has happened
} else {
app.controller("MyCTRL", function ($scope) {
$scope.FirstName = data.FirstName;
$scope.LastName = data.LastName;
});
}
});
}
//timer function for loading in page data
function pagetimer() {
setTimeout(function() { pulldata(); pagetimer(); }, 10000); // 10000 = 10 seconds
}
//Pull data as soon as webpage is up
pulldata();
//Start timer for data refresh
pagetimer();
下面是HTML部分:
<div ng-app="MyApp" ng-cloak ng-controller="MyCTRL">
FirstName: {{FirstName}}
LastName: {{LastName}}
</div>
只是一個僅供參考。驗證了JSON網址正在工作。當我做一個警報(data.FirstName);在嵌入式功能中。它確實返回了名字。該代碼只是不更新MyApp Div中的名字。
您需要閱讀AngularJS教程。應用程序啓動後,您無法重新定義控制器。 Angular有一個你應該使用的$ http服務。它有一個你應該使用的$超時服務。代碼應該在角度組件內,而不是在全局函數中。 –
Angular雖然起初看起來很陌生,但如果要成功使用它,則需要真正擁抱它。 JB絕對正確。從簡單明瞭的基礎教程開始,重點學習和理解基礎知識。目前你所做的核心問題太多,無法正確解決你遇到的問題。 –