首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intel appframework ui:如何在一个简单的列表-细节应用程序中传递数据

Intel appframework ui:如何在一个简单的列表-细节应用程序中传递数据
EN

Stack Overflow用户
提问于 2013-09-20 11:21:47
回答 2查看 2K关注 0票数 2

我试着学习Intel应用框架UI。

我想建立一个简单的离线应用程序,只有两个面板。一个面板包含一个包含项目(链接)的列表,第二个面板应该显示所选项目的详细信息。第二个面板中的细节应该用javascript填充。

如何将数据(例如数字item_id)传递给第二个面板,以便javascript能够访问它并将其填充到details页面中?

我是否可以使用列表中链接的url的一部分,如:

代码语言:javascript
复制
<li>
   <a href="#detailpanel?item=3"> Item 3 </a>
</li>

如果是,如何将信息返回详细信息页?还是我需要使用javacript链接?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-03 11:36:33

在英特尔应用框架论坛上回答了我的问题:https://forums.html5dev-software.intel.com/viewtopic.php?f=26&t=4478

因此,解决方案是使用这样的urls:

代码语言:javascript
复制
<li>
    <a href="#detailpanel/3"> Item 3 </a>
</li>

我们将一个处理程序附加到目标面板,该面板从浏览器中获取url。当调用回调时,框架将url设置为新值:

代码语言:javascript
复制
$("#detailpanel").bind("loadpanel",function(evt){
  //url would be #detailpanel/N
  params = document.location.hash.split('/');
  if(params.length > 1){
    showDetails(params[1]);
  }
  else {
    console.log('on_load_detailpanel: detailnr missing');
  }
})
票数 4
EN

Stack Overflow用户

发布于 2013-09-30 16:39:35

我不是Appframework专家,但我想出了最简单的解决方案:

由于您使用的是单页应用程序,所以可以将当前选定的项存储在全局数据结构中:

代码语言:javascript
复制
<script type="text/javascript">
  var dialogData = {
    "currentItemNo": -1,
    // possibly other dialog data
  };
</script>

然后,在HTML中您可以这样设置它:

代码语言:javascript
复制
<li>
  <a href="#detailpanel" onclick="dialogData.currentItemNo=3">Item 3</a>
<li>

并在用户导航到该页时访问它:

代码语言:javascript
复制
<script type="text/javascript">
  $("#detailpanel").bind("loadpanel", function () {
    console.log("You clicked " + dialogData.currentItemNo);
  });
</script>

请注意,click处理程序和AF的锚处理程序都会被调用(首先是单击处理程序)。

如果您的列表是从模板生成的,您可能希望使用更优雅的解决方案来访问当前的项目号:

代码语言:javascript
复制
<li>
  <a href="#detailpanel" data-itemno="3" onclick="dialogData.currentItemNo=this.dataset.itemno">Item 3</a>
<li>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18915540

复制
相关文章

相似问题

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