Javascript 设置为localstorage淘汰后更新视图

Javascript 设置为localstorage淘汰后更新视图,javascript,knockout.js,Javascript,Knockout.js,我想将数组推入并将其设置为本地存储在knockout中。到现在为止,一直都还不错。 只要我想检索数据并推送新数据并将其显示到视图中。它不起作用了 var viewModel = function() { var self = this; this.tags = ko.observable(''); self.tempNum = ko.observableArray(); self.tempNum = localStorage.getItem('tags')

我想将数组推入并将其设置为本地存储在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());
var viewModel=function(){
var self=这个;
this.tags=ko.可观察(“”);
self.tempNum=ko.observearray();
self.tempNum=localStorage.getItem('tags')?JSON.parse(localStorage.getItem('tags')):[];//此行不允许更新数据
self.formSubmit=函数(){
var self=这个;
var num=checknum(self.tags().split(/[,;\n]+/);
console.log(self.tempNum)
setItem('tags',ko.toJSON(num));
}
self.removeTags=函数(){
console.log(“ada”)
}
函数checknum(项){
对于(变量i=0;i=0){
self.tempNum.push({value:item[i],颜色:“red”})
}否则{
self.tempNum.push({value:item[i],颜色:“blue”})
}
}
}
return self.tempNum
}
};
应用绑定(新的viewModel());
事实上,一切正常,当我添加这一行时:

self.tempNum=localStorage.getItem('tags')?parse(localStorage.getItem('tags')):[]


视图不更新。有什么建议吗?谢谢你

我没有足够的声誉来添加评论,否则我会先在评论中请求你的html代码

如果没有html代码,很难猜测您想要实现什么,但是当您添加这一行时

self.tempNum = localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : [];
然后将tempNum observable数组替换为普通javascript数组,这样关联的视图就不会更新

试着用这个替换

self.tempNum(localStorage.getItem('tags') ? JSON.parse(localStorage.getItem('tags')) : []);
看看这是否有帮助