【发布时间】:2011-11-28 08:46:39
【问题描述】:
我是第一次使用 jQuery Mobile 框架。我已经从站点复制了示例代码以获取列表视图。根据文档,它应该进行 AJAX 调用,然后更新 DOM。
当我点击一个链接时,ajax 加载图标会正确弹出。然后页面重新加载,其中唯一的单词是“未定义”。
我正在使用 CakePHP,它已拉入我的移动布局。如果我重新加载页面,我会得到正确的页面视图。
谁能告知这个“未定义”消息的来源以及如何让它发挥作用?
谢谢, 安迪
编辑:包含代码
// mobile layout
<div data-role="page" class="type-interior">
<div class="content-primary">
<p><?php echo $content_for_layout; ?></p>
</div><!-- /content -->
</div><!-- /page -->
// gallery view
<div data-role="header">
<h1>My heading</h1>
</div><!-- /header -->
<ul data-role="listview" data-filter="true">
<li><?php echo $this->Html->link('Gauteng',array('controller'=>'regions','action'=>'gallery',4)); ?></li>
<li><?php echo $this->Html->link('Western Cape',array('controller'=>'regions','action'=>'gallery',1)); ?></li>
<li><?php echo $this->Html->link('Eastern Cape',array('controller'=>'regions','action'=>'gallery',2)); ?></li>
<li><?php echo $this->Html->link('Northern Cape',array('controller'=>'regions','action'=>'gallery',9)); ?></li>
<li><?php echo $this->Html->link('Free State',array('controller'=>'regions','action'=>'gallery',3)); ?></li>
<li><?php echo $this->Html->link('Mpumalanga',array('controller'=>'regions','action'=>'gallery',7)); ?></li>
<li><?php echo $this->Html->link('Kwa-Zulu Natal',array('controller'=>'regions','action'=>'gallery',5)); ?></li>
<li><?php echo $this->Html->link('North West',array('controller'=>'regions','action'=>'gallery',8)); ?></li>
<li><?php echo $this->Html->link('Limpopo',array('controller'=>'regions','action'=>'gallery',6)); ?></li>
</ul>
单击其中任何一个都会导致页面显示“未定义”。它具有移动布局,但未读取正确的视图文件。
编辑: 谷歌搜索广泛发现了一个类似的问题answered here on stackoverflow 但是当我尝试更改 beforeRender 方法中的布局时,ajax 永远不会完成。我用 firebug 跟踪了网络流量,可以看到 http get 请求成功完成并返回正确的页面信息(整个页面)。然而,JQM 并未更新视图。
【问题讨论】:
-
啊,正在输出的视图中有一个脚本。删除脚本让网站正常工作。
-
很抱歉再次发表评论,但我又遇到了这个问题,并认为注意这里的解决方案可能会对人们有所帮助。第二次遇到问题是因为我使用的是 CakePHP,需要在我的视图文件顶部包含正确的 div 标签,以便 AJAX 调用能够检测到传入的内容。
-
您可能希望将此作为答案发布并接受它,这样看起来就好像它确实是固定的。