jQuery加载<script>但在AngularJS下就不一样了

jQuery loading <script> but not evaluating the same under AngularJS

本文关键字:AngularJS 不一样了 但在 script 加载 jQuery      更新时间:2023-09-26

我正在开发一个单页应用程序,我打算保持尽可能多的模块化。此外,它将是一个相当大的应用程序,因此,我打算仅在加载关联视图时加载控制器。为了达到同样的目的,我以以下方式组织了我的代码:

app.js

var app = angular.module("app", ['ngRoute']).config(function($httpProvider) { 
    $httpProvider.defaults.headers.common['X-Requested-With'] = "XMLHttpRequest";
    $httpProvider.defaults.headers.post['Content-Type'] = "application/x-www-form-urlencoded; charset=utf-8";
});

route.js

app.config(function($routeProvider) {
    $routeProvider.when("/user/login", {
        templateUrl: "/user/login.html",
        controller: "LoginCtrl"
    });
});
用户/login.html

<script type="text/javascript" src="/js/user/login.js"></script>
<div>
    <!-- Complete Login Form -->
</div>

js/user/login.js

app.controller("LoginCtrl", function() {
    // Login related functionality
});

现在,我面临的问题是login.html模板正在正确加载。同时,正在发送login.js的请求并成功接收到响应。但是,我仍然从AngularJS得到错误,说LoginCtrlundefined。我对此进行了研究,发现包含jQuery可以解决问题,但这并没有发生。我试着在login.js文件中放一个简单的警报,但弹出窗口也没有出现。

在这件事上任何帮助都是非常感谢的。

您需要更改登录控制器的位置

app.config(function($routeProvider) {
    $routeProvider.when("/user/login", {
        templateUrl: "/user/login.html",
         //controller: "LoginCtrl" // remove this
    });
});

,并像这样替换HTML

<script type="text/javascript" src="/js/user/login.js"></script>
<div ng-controller="LoginCtrl">
    <!-- Complete Login Form -->
</div>
相关文章: