设置为 localstorage knockout 后更新视图
Update view after setting to localstorage knockout
我想推入数组并在敲除中将其设置为本地存储。到目前为止,一切都很好。
据我想检索数据并推送新数据并将它们显示在视图中。它不工作。
var viewModel = function() {
var self = this;
this.tags = ko.observable('');
self.tempNum = ko.observableArray();
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : []; // this line wont let data to be updated
self.formSubmit = function(){
var self = this;
var num = checknum(self.tags().split(/[,;\n]+/));
console.log(self.tempNum)
localStorage.setItem('tags',ko.toJSON(num));
}
self.removeTags = function() {
console.log("ada")
}
function checknum(item){
for(var i = 0; i < item.length; i++){
if(!isNaN(item[i]) && item[i] != ''){
if(item[i] >= 0){
self.tempNum.push({value:item[i],color:"red"})
}else{
self.tempNum.push({value:item[i],color:"blue"})
}
}
}
return self.tempNum
}
};
ko.applyBindings(new viewModel());
实际上一切正常,当我添加此行时:
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : [];
视图未更新。有什么建议吗?谢谢
我没有足够的声誉来添加评论,否则我会先在评论中要求您提供 html 代码。
如果没有您的 html 代码,很难猜出您要实现什么,但是当您添加此行时
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : [];
您的代码然后用普通 javascript 数组替换 tempNum 可观察数组,这样您的关联视图就不会更新。
尝试用这个替换
self.tempNum(localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : []);
看看这是否有帮助
我想推入数组并在敲除中将其设置为本地存储。到目前为止,一切都很好。 据我想检索数据并推送新数据并将它们显示在视图中。它不工作。
var viewModel = function() {
var self = this;
this.tags = ko.observable('');
self.tempNum = ko.observableArray();
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : []; // this line wont let data to be updated
self.formSubmit = function(){
var self = this;
var num = checknum(self.tags().split(/[,;\n]+/));
console.log(self.tempNum)
localStorage.setItem('tags',ko.toJSON(num));
}
self.removeTags = function() {
console.log("ada")
}
function checknum(item){
for(var i = 0; i < item.length; i++){
if(!isNaN(item[i]) && item[i] != ''){
if(item[i] >= 0){
self.tempNum.push({value:item[i],color:"red"})
}else{
self.tempNum.push({value:item[i],color:"blue"})
}
}
}
return self.tempNum
}
};
ko.applyBindings(new viewModel());
实际上一切正常,当我添加此行时:
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : [];
视图未更新。有什么建议吗?谢谢
我没有足够的声誉来添加评论,否则我会先在评论中要求您提供 html 代码。
如果没有您的 html 代码,很难猜出您要实现什么,但是当您添加此行时
self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : [];
您的代码然后用普通 javascript 数组替换 tempNum 可观察数组,这样您的关联视图就不会更新。
尝试用这个替换
self.tempNum(localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : []);
看看这是否有帮助