Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript KnockoutJS-将js对象指定给viewmodel observable_Javascript_Knockout.js - Fatal编程技术网

Javascript KnockoutJS-将js对象指定给viewmodel observable

Javascript KnockoutJS-将js对象指定给viewmodel observable,javascript,knockout.js,Javascript,Knockout.js,我需要将一个javascript对象分配给一个可观察对象。 这个对象有75个属性,如果我这样写: viewmodel.myprop(obj); 这需要非常非常非常长的时间和网页崩溃 我认为可以在对象属性上使用for循环迭代,但无法正确编写赋值指令: for(property in obj){ // ???? } 我该怎么做 谢谢在此代码中,属性是动态创建的 for (property in obj) { if (obj.hasOwnProperty(property))

我需要将一个javascript对象分配给一个可观察对象。 这个对象有75个属性,如果我这样写:

viewmodel.myprop(obj);
这需要非常非常非常长的时间和网页崩溃

我认为可以在对象属性上使用for循环迭代,但无法正确编写赋值指令:

for(property in obj){
    // ????
}
我该怎么做


谢谢

在此代码中,属性是动态创建的

for (property in obj) {
      if (obj.hasOwnProperty(property)) {
          //here you can check all the values on each properties
          console.log(property +" - "+obj[property]);
          //Here new properties are registering for viewmodel
          this[property] = ko.observable(obj[property]); 
      }
 }
 console.log(this.MyProperty());

MyProperty是大型对象上的某个匹配属性名称

我需要将obj分配给viewmodel.myprop,但采用了与viewmodel不同的方式。mypropobj只是尝试了一下,但什么也没做。特别是,如果我在控制台中签入viewmodel道具,则该道具将被定值,但在页面中没有任何效果。它在我的示例应用程序中对我有效。在控制台中,我还可以看到属性值。我觉得您遗漏了一些内容。我再次编辑了代码。请检查它。我无法理解您遇到的确切问题。您是否同时设置了所有75个属性,导致某个计算属性在很短的时间跨度内计算了75次?如果是这样,使用循环不会解决问题;可能有用。我同意一定有其他有效的种族条件。将对象设置为可观察值不应该导致这样的问题。如何调试knockoutjs赋值?