javascript - AngularJS + jQuery Mobile w/No Adapter & Disabled Routing - 仅用于 UI 样式

标签 javascript jquery-mobile angularjs

我正在学习 AngularJS 并构建了一个小型应用程序。现在它的功能已经完成,我想使用 jQuery Mobile 来设计它的样式。

最初我掉进了tigbro's jquery-mobile-angular-adapter ,但最终决定它比我需要的更复杂和复杂。我不想在 jQuery Mobile 中使用任何花哨的屏幕转换或页面管理功能 - 我只是想用它来设置应用程序的样式,让 AngularJS 处理其余部分。

我读了this post ,它具有相同的目标,尽管使用了另一个框架,并且包含一个代码片段来禁用 jQuery Mobile 路由。

我已按照此脚本加载顺序将该代码段应用于我的应用程序,就在关闭正文标记之前:

  1. jQuery
  2. 片段
  3. jQuery 手机
  4. AngularJS

这个片段放置是唯一有效的,或者无论如何都有效的,因为我的索引中的任何内容都加载了正确的样式(基本上是标题和主导航),并且我的 AngularJS 路由工作得很好,但是任何动态加载的模板填充我的 ng-view,尽管有 jQuery Mobile 数据 Angular 色(ul 作为 ListView 等),但 jQuery Mobile 没有设计样式;它们只是纯 HTML。

有没有人知道如何让那些动态加载的模板也被设置样式?

我的索引 HTML 结构如下所示:

<body>
    <div data-role="page">
        <div data-role="header" data-position="fixed">
            <h1>MyApp</h1>
                <a href="#/home">Home</a>
            <a href="#/add_item">Add</a>
        </div>

        <div data-role="content" ng-view></div>
    </div>
    <!-- Scripts -->
</body>

这是我的模板之一的示例:

<ul data-role="listview" ng-controller="MyListCtrl">
    <li ng:repeat="item in things">
        <a href="#/item/{{ item.ID }}">{{ item.title }}<br/>{{ formatDateForDisplay(item.addDate) }}</a>
    </li>
</ul>

谢谢!

最佳答案

我最终把这个指令放在一起:

angular.module('myApp.directives', []).
    directive('applyJqMobile', function() {
        return function($scope, el) {
            setTimeout(function(){$scope.$on('$viewContentLoaded', el.trigger("create"))},1);
        }
    });

然后在每个模板内部,将模板内容包装在一个 div 中并在那里应用指令,即:

<div ng-controller="MyController" apply-jq-mobile>
<!-- Template Content to be jQ Mobilezed -->
</div>

这行得通,但是由于 setTimeout,加载时内容会闪烁一瞬间。我仍在研究如何摆脱闪光灯。

请注意,没有 setTimeout 到位,data-role="listview"不会被设置样式(我猜是因为它仍然必须由 ng-repeat 填充),但是 View 中的任何静态内容都是样式的。

关于javascript - AngularJS + jQuery Mobile w/No Adapter & Disabled Routing - 仅用于 UI 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461426/

相关文章:

javascript - 使用 Javascript 在 HTML5 中重绘 Canvas

javascript - Node Promise 与 node-mysql 不会让应用程序终止

javascript - 页面更改后 Onclick 在面板中不起作用

ios - phonegap 应用程序中的随机白色闪光

node.js - EC2 t1.micro - 我可以在 Node 服务器上正常运行一个 mongodb 吗?

dom 节点太多的 Javascript 性能问题?

windows-phone-7 - 使用 PhoneGap 在 Windows Phone 中访问文件系统

javascript - Angularjs 不工作并且页面加载太慢

javascript - 如何使用 angular.js 添加/删除更改 'disabled' 或 'checked' 属性

javascript - 无法使用异步 waterfall 运行 parse-csv 函数