Javascript 角度本地存储阵列未在HTML上显示
我正在本地存储中保存一个数组中的前5名高分列表,但当我尝试在HTML中显示它时,它不会出现 我使用GameService.getScores()函数从本地存储中获取数组,并引用$scope.scores数组来填充HTML中的列表 我是Node.js中的noob,我不知道我做错了什么。有什么想法吗 这是我的控制器文件和HTML文件:Javascript 角度本地存储阵列未在HTML上显示,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我正在本地存储中保存一个数组中的前5名高分列表,但当我尝试在HTML中显示它时,它不会出现 我使用GameService.getScores()函数从本地存储中获取数组,并引用$scope.scores数组来填充HTML中的列表 我是Node.js中的noob,我不知道我做错了什么。有什么想法吗 这是我的控制器文件和HTML文件: var-app=angular.module('app',[]); app.controller('GameController',函数($scope,GameSe
var-app=angular.module('app',[]);
app.controller('GameController',函数($scope,GameService)
{
var highScores=GameService.getScores();
$scope.scores=高分;
$scope.submitEntry=函数()
{
if(typeof$scope.name==‘未定义’| | typeof$scope.word==‘未定义’)
{
回来
}
变量项={
名称:$scope.name,
word:$scope.word
};
var分数=游戏服务。提交(条目);
var userScore={
name:entry.name,
分数:分数
};
如果(分数>0)
{
如果($scope.scores.length<5)
{
$scope.scores.push(userScore);
setItem(“highScores”,JSON.stringify($scope.scores));
回来
}
其他的
{
for(设i=0;i<$scope.scores.length;i++)
{
如果(分数>$scope.scores[i].分)
{
$scope.score.splice(i,1,userScore);
setItem(“highScores”,JSON.stringify($scope.scores));
回来
}
}
}
}
};
});
app.service('GameService',函数($http)
{
this.getScores=函数()
{
var hs=[];
if(localStorage.getItem('highScores')!=null)
{
hs=localStorage.getItem('highScores');
if(hs)
{
hs=JSON.parse(hs);
}
}
返回hs;
};
this.submittentry=函数(条目)
{
var得分=0;
var revStr=“”;
var str=entry.word;
var i=str.length;
对于(var j=i;j>=0;j--)
{
revStr=revStr+str.charAt(j);
}
如果(str==revStr)
{
警报(str+“是回文”);
分数=str.length;
}
其他的
{
警报(str+“不是回文”);
}
返回分数;
};
});代码>
回文博弈
提交一个新单词!
提交单词
高分
-
{{score.name}{{score.points}}points
您的代码实际工作正常:
回文博弈
提交一个新单词!
提交单词
高分
-
{{score.name}{{score.points}}points
var-app=angular.module('app',[]);
app.controller('GameController',函数($scope,GameService)
{
var highScores=GameService.getScores();
$scope.scores=高分;
$scope.submitEntry=函数()
{
if(typeof$scope.name==‘未定义’| | typeof$scope.word==‘未定义’)
{
回来
}
变量项={
名称:$scope.name,
word:$scope.word
};
var分数=游戏服务。提交(条目);
var userScore={
name:entry.name,
分数:分数
};
如果(分数>0)
{
如果($scope.scores.length<5)
{
$scope.scores.push(userScore);
setItem(“highScores”,JSON.stringify($scope.scores));
回来
}
其他的
{
for(设i=0;i<$scope.scores.length;i++)
{
如果(分数>$scope.scores[i].分)
{
$scope.score.splice(i,1,userScore);
setItem(“highScores”,JSON.stringify($scope.scores));
回来
}
}
}
}
};
});
app.service('GameService',函数($http)
{
this.getScores=函数()
{
var hs=[];
if(localStorage.getItem('highScores')!=null)
{
hs=localStorage.getItem('highScores');
if(hs)
{
hs=JSON.parse(hs);
}
}
返回hs;
};
this.submittentry=函数(条目)
{
var得分=0;
var revStr=“”;
var str=entry.word;
var i=str.length;
对于(var j=i;j>=0;j--)
{
revStr=revStr+str.charAt(j);
}
如果(str==revStr)
{
警报(str+“是回文”);
分数=str.length;
}
其他的
{
警报(str+“不是回文”);
}
返回分数;
};
});
我删除了这个:
<script src="ng/app.js"></script>`
`
但我不确定这是否是一个问题
根据您测试代码的方式(stackoverflow上的代码片段,JSFIDLE)以及在哪个浏览器上测试,您可能会在同源策略中遇到一些问题
在chrome上,我必须取消选中“阻止第三方cookies”才能使其正常工作。在firefox上,它仍然不工作,操作被阻止,因为浏览器认为它不安全
我建议您在您的计算机上本地尝试代码,而不是在JSFIDLE之类的在线沙盒中尝试。控制台中的任何错误控制台中没有错误打印模板中的分数,例如{{scores}
似乎可以工作,您只是对数据排序不好谢谢Zooly,您对数据排序是什么意思?
<script src="ng/app.js"></script>`