0

我有index.html里面ng-view的。我已将相应的 .js 文件导入到 .js 文件中,index.html但那些.js未应用于注入视图的文件。

索引.html

<!DOCTYPE html>
<html class="no-js css-menubar" lang="en" >
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<head>
<title>gg</title>  
  <!-- Scripts -->
    <script src="js/userdat.js"></script>
</head>
<body class="dashboard site-menubar-push" ng-app="app">
   <h1>Header</h1>

   <ng-view></ng-view> 

   <script src="assets/js/jquery-1.9.1.js"></script>
   <script src="assets/js/jquery.mobile-1.4.2.js"></script>
   <!-- AngularJS Angular-route -->
   <!--Angular linking -->
   <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.min.js"></script>
   <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-route.min.js">
   </script>
   <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-resource.js">
   </script>  
</body>
</html>

该行<script src="js/userdat.js"></script>有 jQuery 的东西,它加载完美,但其中的逻辑返回不适用于ng-view注入的 ui 元素。如果我将其导入部分,它工作正常但不稳定,你知道如何正确导入它。

部分.html

<script src="js/userdat.js"></script>
<div class="jumbotron text-center">
   <h1>Home Page 4 Life</h1>
   <p>hi</p>
</div>
4

2 回答 2

1

要么将所有 CDN 包括 (jquery, angular, ...) 放在<head>元素中,要么将 theuserdat.js放在<body>.

请注意,如果您使用注入到 中的 JQuery 访问 DOM 元素,则ng-view需要侦听$routeChangeSuccess事件,因为 html 在角度摘要之后被修改。

于 2016-02-10T12:04:55.060 回答
0

最好的方法是使用 RequireJS,但如果您的项目已经很大,这将非常困难。

使用 RequireJS,您甚至可以为路由添加解析:

resolve: {
  userdat: function($q) {
    var deferred = $q.defer();
    require(['./js/userdat.js'], function(userdat) {
      deferred.resolve(userdat);
    });
    return deferred;
  }
}

如果实现 RequireJS 太难,我只会将代码硬编码到视图中。

于 2016-02-10T11:54:06.293 回答