我尝试根据从服务器传回的数值来更改页面中的文本元素。我设法存储每个引用以及来自服务器的值,但是当试图访问对象的文本值时,我会遇到错误statusText[key].text is not a function
。从列表引用时是否可以访问对象属性? Javascript和Angular不是我的强项。
以下是代码:
var log = [];
var statusText = [];
$http.post("url", {userid: currentUserID})
.then(function(response)
{
angular.forEach(response.data.status, function(value, key){
this.push(value.complete);
}, log);
angular.forEach(document.getElementsByClassName("step-status"), function(value, key)
{
this.push(value)
}, statusText);
angular.forEach(statusText, function(value, key)
{
if (log[key] == 2)
{
statusText[key].text('Completed');
}
else if (log[key] == 1)
{
statusText[key].text('In progress');
}
else
{
statusText[key].text('Not started');
}
});
});
答案 0 :(得分:0)
这是因为您在forEach
上应用response.data.status
,您将检查此值,然后它将是一些数值,如200.
尝试像这样改变
statusText = response.data;
angular.forEach(response.data, function(value, key){
this.push(value.complete);
}, log);
答案 1 :(得分:0)
试试这个
var log = [];
var statusText = [];
$http.post("url", {userid: currentUserID})
.then(function(response)
{
angular.forEach(response.data.status, function(value, key){
this.push(value.complete);
}, log);
angular.forEach(document.getElementsByClassName("step-status"), function(value, key)
{
this.push(value)
}, statusText);
angular.forEach(statusText, function(value, key)
{
if (log[key] === 2)
{
statusText[key] = 'Completed';
}
else if (log[key] === 1)
{
statusText[key] = 'In progress';
}
else
{
statusText[key] = 'Not started';
}
});
});
答案 2 :(得分:0)
Sollution:改变了我显示返回字符串的方法。只需将数组的每个元素设置为我想要的字符串,并使用绑定来显示数据。
感谢所有人的帮助。