angularjs - Controller 无法使用路线功能

标签 angularjs

我是 angularjs 技术的新手。我在我的项目中实现了一项注册功能。

我在我的项目中创建了一个用于路由和 Controller 功能的 js 文件,并且工作正常,如果我将执行单独的路由器和 Controller 文件,那么我的应用程序将失败。

我需要为路由器和 Controller 制作单独的文件。

下面是我在一个文件中的代码。

app.js 文件

var app = angular.module('crasApp', [ 'ngRoute' ]);
app.config(function($routeProvider) {
    $routeProvider.when("/", {
        templateUrl : "./views/xyz.html",
        controller : "searchCtrl"
    }).when("/registration", {
        templateUrl : "./views/abc.html",
        controller : "MainCtrl"
    }).when("/view", {
        templateUrl : "./views/viewsdata.html",
        controller : "overViewCtrl"
    });
});
app
        .controller(
                "MainCtrl",
                function($scope, $http) {       
         console.log("Hi");
});

index.html

<!DOCTYPE html>
<html ng-app="crasApp">
<script
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<head>
<!-- Use Bootstrap -->
<link rel="stylesheet" href="./css/bootstrap.min.css">
<link rel="stylesheet" href="./css/abn-stylesheet.css">
<link rel="stylesheet" href="./css/style.css">
<script src="./javascripts/jquery/jquery-1.12.4.js"></script>
<script src="./javascripts/jquery/jquery.min-1.12.4.js"></script>
<script src="./javascripts/angular/bootstrap.min.js"></script>
<!-- <script src="./javascripts/angular/angular.min.js"></script> -->
    <script src="./javascripts/controllers/app.js"></script>
<!-- <script src="./javascripts/angular/angular-route.js"></script> -->
<script src="./javascripts/router/router.js"></script>

<script
    src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>

</head>
<div ng-view></div>

</html>

xyz.html

<!DOCTYPE html>
<html ng-app="crasApp">
<head>
<!-- Use Bootstrap -->
<link rel="stylesheet" href="./css/bootstrap.min.css">
<link rel="stylesheet" href="./css/abn-stylesheet.css">
<link rel="stylesheet" href="./css/style.css">
<link rel="stylesheet" href="./css/ngDatepicker.css">
<script src="./javascripts/jquery/jquery-1.12.4.js"></script>
<script src="./javascripts/jquery/jquery.min-1.12.4.js"></script>
<script src="./javascripts/angular/bootstrap.min.js"></script>
<!-- <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script> -->
<script src="./javascripts/controllers/app.js"></script>
</head>
<body ng-controller="MainCtrl">
 Hi
</body>
<html>

所以,如果我使用一个 app.js 文件,它就是工作文件

我想做单独的路由器和 Controller 文件。

路由器功能我移至不同的文件及其工作路由器功能但不工作 Controller 功能..

单独的路由器文件如下。

路由器.js

var app = angular.module('crasApp', [ 'ngRoute']);
app.config(function($routeProvider) {
    $routeProvider.when("/", {
        templateUrl : "./views/retrieveTerminationReason.html",
        /*controller : "searchCtrl"*/
    }).when("/registration", {
        templateUrl : "./views/registration.html",
        /*controller : "MainCtrl"*/
    }).when("/view", {
        templateUrl : "./views/forbearanceRegistartionOverview.html",
        /*controller : "overViewCtrl"*/
    });
});

app.js 作为 Controller

var app = angular.module('crasApp', []);

app
        .controller(
                'MainCtrl',
                function($scope, $http) {
                    console.log("Hi");
});

请任何人都可以在这部分提供帮助。

最佳答案

在 router.js 中,更改 var app = angular.module('crasApp', [ 'ngRoute'])var app = angular.module('crasApp') .

此外,在 app.js 中,您的声明应为:var app = angular.module('crasApp', ['ngRoute']); 。由于您有一个模块“crasApp”,因此在声明模块本身时必须声明它的依赖项。

您当前所要做的是重新创建模块与附加功能。

此外,请务必将 router.js 也包含在 HTML 中。

关于angularjs - Controller 无法使用路线功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573988/

相关文章:

javascript - 将 $index 作为 $emit 的参数传递会破坏函数

javascript - AngularJS:充分利用 AngularJS 的特性/结构

javascript - 混合 "app controller"和 ng-view

javascript - 何时在 Angular JS 中使用发射和广播?

javascript - AngularJS - 使用 $valid 进行动态验证

javascript - Angular js 将 'file' 类型更改为 'text' 类型 [Safari]

javascript - AngularJS指令: Substituting attribute values directly into template

angularjs - 将 angular-ui-grid 字体复制到 .tmp/fonts

javascript - 在 ng-repeat 中添加一些元素的包装器

javascript - 有条件地将属性指令添加到 ng-repeat