【发布时间】:2013-10-20 16:23:14
【问题描述】:
这是我关于 SO 的第一个问题,所以我会尽量让它清晰易懂。
我最近开始使用 Angular JS,目前我正在使用 Angular JS 和 jQuery Mobile 开发移动应用程序。到目前为止,我还没有遇到任何重大问题,也不需要考虑任何外部库进行集成(例如 angular js + jquery 移动适配器)。我创建了一个多页面应用程序(目前只有两个页面)并为每个页面(登录 + 内容页面)使用单独的控制器。该应用程序本身很简单,它只是一个保存列表的应用程序,我根据内容页面的 ui 方面创建了一个快速 jsfiddle:http://jsfiddle.net/G7JNV/4/
该应用程序按预期从 jsfiddle 运行。但是,由于内容页面是与登录页面相同的 html 文档 (index.html) 中的页面,因此要导航到内容页面,url 变为:
.../index.html#mainpage
(主页面是列表管理员的页面)
那就是事情开始变得有趣的时候。当 url 像上面那样时,当向列表中添加一个项目时,该项目最初是没有样式的(它看起来不像是列表的一部分),但该项目的 css 样式在添加另一个项目后又回来了。当然,下一个项目是无样式的(依此类推)。
如果你想看看问题是什么样子的:
但是,如果我没有将哈希页面作为 URL 的一部分,一切都可以正常工作(我通过将两页应用程序转换为内容的一页来测试这一点,以便 .../index.html 直接进入内容页面) .正如人们所期望的那样,css 可以很好地应用于动态内容。
当然我不知道它为什么这样做,我怀疑这与 angular 和 jqm 如何处理 URL 中的哈希锚点有关(但请记住,我在 Angular JS 和jQuery 移动)。
任何更有经验的 Angular JS(和 jQuery Mobile)用户的帮助将不胜感激!
【问题讨论】:
-
那是因为 angularjs 不知道您在创建列表项时尝试将其应用于 jQuery Mobile 的类。
- 您宁愿创建一个指令。
-
ID:{{post.id}} - Post: {{post.postContent}}
我认为这不是 URL 标签问题。这是关于时间的,JQM 在角度附加新项目之前刷新/重新增强列表视图。在头部检查这个jsfiddle.net/mvmcc/8 我禁用了哈希更改,它没有解决问题,所以我延迟了列表视图刷新并且它起作用了。检查这个答案,但使用.listview('refresh')而不是.trigger('create')stackoverflow.com/a/16950459/1771795感谢 Omar 的帮助,为 listview.('refresh') 设置超时(小至 1 毫秒)有效,但我不喜欢我必须这样做的事实。为什么没有标签它可以正常工作,但是当有标签时我必须添加超时?你检查我第二条评论的答案了吗? -