You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS中ng-view路由不生效,其余功能正常的技术求助

AngularJS ng-view路由不显示问题排查与修复

核心问题分析

  • 脚本引入顺序错误:
    angular-route依赖AngularJS核心库,必须在angular.min.js(或angular.js)之后引入;同时不能同时引入angular.min.js和angular.js,二者是同一库的压缩与非压缩版本,重复引入会导致框架冲突。
  • 路由模块名称拼写错误:
    AngularJS官方路由模块的名称是ngRoute,而非代码中的ntRoute,依赖名称错误会导致路由功能无法加载。
  • 重复定义Angular模块:
    代码中先通过var ThePrinter = angular.module('Mine', ['ngRoute'])创建了带路由依赖的模块,随后又通过var Mine = angular.module("Mine", [])重新定义了空依赖的同名模块,覆盖了之前的模块配置,导致路由配置失效。

修复步骤

1. 修正脚本引入顺序与重复引入问题

将页面中的脚本引入修改为:

<script src="~/angular-1.8.2/angular.min.js"></script>
<script src="~/angular-1.8.2/angular-route.js"></script>

只保留一个AngularJS核心文件(选min版或非min版即可),并确保angular-route在核心文件之后引入。

2. 修正路由模块依赖名称

将路由模块的依赖从ntRoute改为ngRoute:

var ThePrinter = angular.module('Mine', ['ngRoute']);
ThePrinter.config(function($routeProvider)
{
    $routeProvider.when('/', {
        template:'<h1>Maganes Pro</h1>'
    });
});

3. 移除重复的模块定义

删除代码中重新定义Mine模块的行,改为直接在已创建的Mine模块上添加工厂和控制器:

// 删掉重复定义的行:var Mine = angular.module("Mine", []);
// 直接获取已定义的Mine模块
var Mine = angular.module("Mine");
Mine.factory('MyFactory', function () {
    return {
        user:'Magnos',
        pass:'018',
        MyFun: function () { console.log('fine'); }
    };
});
Mine.controller("MyCont", function ($scope, $http, MyFactory){
    // 控制器原有逻辑保持不变
});

4. 补充默认路由规则(可选)

添加路由的默认匹配规则,确保路由 fallback 正常:

ThePrinter.config(function($routeProvider)
{
    $routeProvider.when('/', {
        template:'<h1>Maganes Pro</h1>'
    })
    .otherwise({ redirectTo: '/' }); // 添加默认路由
});

修复后完整脚本示例

<script src="~/angular-1.8.2/angular.min.js"></script>
<script src="~/angular-1.8.2/angular-route.js"></script>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>

@await RenderSectionAsync("Scripts", required: false)

<script>
    var Mine = angular.module('Mine', ['ngRoute']);
    Mine.config(function($routeProvider)
    {
        $routeProvider.when('/', {
            template:'<h1>Maganes Pro</h1>'
        })
        .otherwise({ redirectTo: '/' });
    });
    
    Mine.factory('MyFactory', function () {
        return {
            user:'Magnos',
            pass:'018',
            MyFun: function () { console.log('fine'); }
        };
    });
    
    Mine.controller("MyCont", function ($scope, $http, MyFactory){
        $http.get('Index').then(function(res){
            console.log(res);
        }, function(err){
            console.log(err);
        });

        $http.post('Index', { Magnos: 'Maganes', Pass: 100 }).then(function (arr) {
            console.log(arr);
        }, function (err) {
            console.log(err);
        });
        $scope.Myhtml = '<p>Mine</p>'
        $scope.myfac = MyFactory.user;
        $scope.myfacpass = MyFactory.pass;
        $scope.MyFunction = MyFactory.MyFun();

        var MyDate = new Date();
        $scope.hideorshow = function () {
            $scope.thehide = !$scope.thehide;
        };
        $scope.thehide = true;
        $scope.torf = true;
        $scope.FirstName = 'Micheal';
        $scope.LastName = 'Jackson';
        $scope.Magnos = 'MGS Magnos';
        $scope.MySelect = 'Select';
        $scope.MYCB = 'MYCB';
        $scope.AMagnos = {Name:'Maganes', Bozo:150};
        $scope.data = ['One', 'Two', 'Three'];
        $scope.data2 = [
            {UN:'Magnos', Pass:018},
            {UN:'Casper', Pass:012}
        ];
        $scope.MyClick = function ()
        {
            alert('Fine');
        };
        $scope.BigArray = [
            { Emp: 'Magnos', Phone: 012, Date: MyDate },
            { Emp: 'Casper', Phone: 011, Date: MyDate },
            { Emp: 'Hunter', Phone: 010, Date: MyDate },
            { Emp: 'Maganes', Phone: 018, Date: MyDate }
        ];
        console.log($scope.Username);
        console.log($scope.Password);
    });
   
</script>

内容的提问来源于stack exchange,提问作者Magnos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 04:32:01