3

我的问题是,当 Angular 在 ng-view 中加载 templateUrl(通过 $routeProvider)时,它也不会评估所有 javascript。我试图弄清楚,但现在我真的很困惑。在我的搜索过程中,我发现了很多新主题,而我已经迷失在其中了。任何想法?

故事

我试图弄清楚之前是否有其他人遇到过这个问题,或者是否有任何解决这个问题的方法。我发现的方式类似于“延迟加载”指令或使用 requirejs,但我不确定这些工具是否真的解决了这个问题。

正如 Buu Nguyen 在此线程中提到的

这就是 jqLit​​e 的工作方式。如果您希望评估模板中的脚本,请在 AngularJS 之前包含 jQuery。如果包含 jQuery,脚本将被评估。尝试删除 jQuery,您会看到最初观察到的行为。

我已经尝试过,包括在 angularjs 之前的 jquery,但根本不会产生任何影响。例如,我读了几个线程

但没有任何解决方案(也许我错过了一件事)。我认为,这甚至不是我的问题。我不想(重新)加载javascript文件,我只想强制评估我的引导程序。

老实说,我现在真的很困惑。之后我第一次遇到 RequireJS。(懒加载,朋友们,再次)

我在 youtube 上看过Thomas Burleson 的视频,我几乎明白它是什么。而且我查看了更多有关主题的文章(因为我发现它很有趣),但解决方案应该在其他地方。

这是情况

当我在我的 angularjs 应用程序上工作时,我将一个部分站点创建为单独的 .html 文件(以防万一),它看起来很漂亮。然后我将这个 .html 文件切成小块(页眉、顶部菜单、内容、页脚),并在部分 urlTemplate 中使用它的主体标签作为 div。

<body ng-app="myApp" id="page-top">

    <div class="wrapper">
        <div class="navigation">
            <div top-menu></div>
        </div>

        <div ng-view></div>

        <footer id="page-footer">
           <div class="container">
                 <span>Copyright © 2014. All Rights Reserved.</span>
                 <span class="pull-right"><a href="#page-top" class="roll">Go to top</a></span>
           </div>
        </footer>
    </div>
</body>

角度 $routeprovider:

angular.module('myApp').config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/', {
            templateUrl: 'main/templates/main.html'
        }).when('/ad-element', {
            templateUrl: 'submit/templates/submit.html'
        }).when('/404', {
            templateUrl: 'errors/templates/404.html'
        }).otherwise({
            redirectTo: '/404'
        });
    }]);

提交.html

<div class="page-sub-page page-submit">
    <div ng-controller="SubmitController" class="container">
          <form ...></form>
    </div>
</div>

每个角度功能都在工作,唯一可见的区别是外观。

这是一个很好的: 好的

这是不好的: 坏的

4

0 回答 0