首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有延迟绑定的Pager.js

带有延迟绑定的Pager.js
EN

Stack Overflow用户
提问于 2014-07-06 07:22:25
回答 1查看 201关注 0票数 0

我正在尝试使用Pager.js创建一个页面应用程序。我的结构如下:

代码语言:javascript
复制
#word/definition
#word/example
#word/synonym

因此,definitionexample等是具有page绑定的div:

代码语言:javascript
复制
<div data-bind="page: {id: 'word'}">
  <div data-bind="page: {id: 'definition'}">
    <-- stuff goes here -->
  <div data-bind="page: {id: 'example'}">
    <-- stuff goes here -->

诸若此类。

现在,碰巧的是,每个单词对于所有路由都有一个ViewModel,它由一个JSON服务器处理程序提供:

代码语言:javascript
复制
{ definition: "A blah blah blah"
, example: "Don't mess with Texas"
, synonym: "fubar"
}

如何加载ViewModel,使三条路由“共享”它?

代码语言:javascript
复制
<div data-bind="page: {id: 'word', withOnShow: getJsonWord}>
  <div data-bind="page: {id: 'definition'}">
    <-- stuff goes here -->
  <div data-bind="page: {id: 'example'}">
    <-- stuff goes here -->

其中,getJsonWord是一个访问服务器并使用JSON的函数。它被触发,我看到一个JSON响应。但是当我像这样构造页面时,所有的子div总是可见的。寻呼机不会在他们之间切换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-07 02:53:36

我猜您当前的getJsonWord正在执行jQuery异步ajax调用,这意味着最终的JSON不会直接从函数调用中返回。

您需要包装ajax对pager.js的调用,以注入回调。

vm构造函数中的Javascript

代码语言:javascript
复制
your_root_vm.getJsonWord = function(callback) {
  $.getJSON(your_url, function(data) { callback(data); });
};

对于你提到的所有视图都是可见的另一个问题,如果可能的话,请提供一个小提琴。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24593598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档