Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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:显示HTML-填充HTML_Javascript_Ajax_Knockout.js - Fatal编程技术网

Javascript KnockoutJS:显示HTML-填充HTML

Javascript KnockoutJS:显示HTML-填充HTML,javascript,ajax,knockout.js,Javascript,Ajax,Knockout.js,我需要用KnockoutJS实现一个有趣的效果。假设我有一个最简单的模型: var项=函数(){ var self=这个; self.title=ko.可观察(“”); };这行代码显然是错误的: self.list().push(data.results[0].title); 应该是: value.title(data.results[0].title); 这行代码显然是错误的: self.list().push(data.results[0].title); 应该是: value.t

我需要用KnockoutJS实现一个有趣的效果。假设我有一个最简单的模型:

var项=函数(){
var self=这个;
self.title=ko.可观察(“”);

};这行代码显然是错误的:

self.list().push(data.results[0].title);
应该是:

value.title(data.results[0].title);

这行代码显然是错误的:

self.list().push(data.results[0].title);
应该是:

value.title(data.results[0].title);

下面是一个假设的示例:

  • 有一个调用告诉我们最终将渲染多少个项目
  • 对于这些项中的每一项,都需要完成一个调用来呈现实际的UI
我让各个项目负责自己加载数据。这使得将接收到的数据(可以以任何顺序返回)写入相应的列表项变得更加容易

您将看到UI呈现的步骤:

  • 检索用于呈现初始列表的数据的调用正在加载:显示常规加载消息
  • 我们为要检索的每个项目创建了一个列表项。所有项目都已开始数据加载,但在加载完成之前,将显示加载状态
  • 一个接一个地,单个数据加载完成,列表元素接收其内容
  • const{getproductidsaync,getProductAsync}=apiMethods();
    功能项(id){
    this.name=ko.observable(空);
    this.load=ko.pureComputed(()=>!this.name());
    getProductAsync(id).then(this.name);
    };
    Item.fromId=id=>新项目(id);
    函数列表(){
    this.items=ko.observearray([]);
    this.load=ko.pureComputed(()=>!this.items().length);
    GetProductIDAsync()
    .then(ids=>ids.map(Item.fromId))
    .然后(这个项目);
    }
    应用绑定({list:new list()});
    //模拟某些异步API,与以下问题无关:
    函数apiMethods(){
    常量productCatalogDB={
    1:“苹果”,
    2:“橙子”,
    3:“香蕉”
    };
    常数延迟=(f,minT,maxT)=>
    (…args)=>
    新承诺(res=>{
    设置超时(
    ()=>res(f(…args)),
    minT+Math.random()*(maxT-minT)
    )
    });
    返回{
    GetProductIDAsync:延迟(
    ()=>Object.keys(productCatalogDB),5001200),
    getProductAsync:延迟(
    id=>productCatalogDB[id],5001500)
    };
    }
    。正在加载{
    不透明度:.6;
    }
    
    

    正在加载目录ID。。。


    以下是一个假设:

    • 有一个调用告诉我们最终将渲染多少个项目
    • 对于这些项中的每一项,都需要完成一个调用来呈现实际的UI
    我让各个项目负责自己加载数据。这使得将接收到的数据(可以以任何顺序返回)写入相应的列表项变得更加容易

    您将看到UI呈现的步骤:

  • 检索用于呈现初始列表的数据的调用正在加载:显示常规加载消息
  • 我们为要检索的每个项目创建了一个列表项。所有项目都已开始数据加载,但在加载完成之前,将显示加载状态
  • 一个接一个地,单个数据加载完成,列表元素接收其内容
  • const{getproductidsaync,getProductAsync}=apiMethods();
    功能项(id){
    this.name=ko.observable(空);
    this.load=ko.pureComputed(()=>!this.name());
    getProductAsync(id).then(this.name);
    };
    Item.fromId=id=>新项目(id);
    函数列表(){
    this.items=ko.observearray([]);
    this.load=ko.pureComputed(()=>!this.items().length);
    GetProductIDAsync()
    .then(ids=>ids.map(Item.fromId))
    .然后(这个项目);
    }
    应用绑定({list:new list()});
    //模拟某些异步API,与以下问题无关:
    函数apiMethods(){
    常量productCatalogDB={
    1:“苹果”,
    2:“橙子”,
    3:“香蕉”
    };
    常数延迟=(f,minT,maxT)=>
    (…args)=>
    新承诺(res=>{
    设置超时(
    ()=>res(f(…args)),
    minT+Math.random()*(maxT-minT)
    )
    });
    返回{
    GetProductIDAsync:延迟(
    ()=>Object.keys(productCatalogDB),5001200),
    getProductAsync:延迟(
    id=>productCatalogDB[id],5001500)
    };
    }
    。正在加载{
    不透明度:.6;
    }
    
    

    正在加载目录ID。。。


    是的,这确实是个错误。但是对于这个问题的解决方案,你能说些什么呢?如果不知道你的期望是什么,以及它的表现如何,我就无能为力。仅仅说“不行”是不够的。不是说不行,而是我不知道怎么做。我需要在加载文档后将其视为空HTML块。它们只有在使用Ajax加载数据后才会被填充。我看不出您的代码中还有什么不合适的地方,但也许我不明白您遇到了什么问题。是的,这确实是一个错误。但是对于这个问题的解决方案,你能说些什么呢?如果不知道你的期望是什么,以及它的表现如何,我就无能为力。仅仅说“不行”是不够的。不是说不行,而是我不知道怎么做。我需要在加载文档后将其视为空HTML块。只有在使用Ajax加载数据后,才会填充它们。我看不出您的代码中还有任何不合适的地方,但可能我不明白您遇到了什么问题。请原谅我花了这么长时间来回答。你给出了一个惊人的、详尽的答案。非常感谢你。你在解决我的问题上帮了我很多。请原谅我花了这么长时间回答。你给出了一个惊人的、详尽的答案。多谢各位