javascript - 为什么我的 Controller 没有在下面的代码中注册?

标签 javascript angularjs

我的索引文件:

<!DOCTYPE html>
<html ng-app="myApp" ng-controller="homingController">
<head>
<title></title>
<script src="./js/jquery-1.9.1.js"></script>
<script src="./js/jquery-ui.js"></script>
<script src="./js/angular.js"></script>
<script src="./js/angular-ui-router.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.0/angular-route.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.min.js"></script>
<script src="./Controller/homingController.js"></script>
<link rel = "stylesheet" href = "./css/angular-material.min.css">
<link rel="stylesheet" href="./css/bootstrap-theme.min.css">
<link rel = "stylesheet" href = "./css/materialize.min.css">
<link href="./css/icon.css" rel="stylesheet">
<link rel ="stylesheet" href="./css/Main.css">
<title>Home Application</title>
</head>

<body>
<div class="navbar">
<a href="#/home">Home</a>
<a href="#/monitor">about</a>
</div>
<div ng-view></div>

<script>
var mainApp = angular.module('myApp', ['ngRoute']);

mainApp.config(function($routeProvider) {

    $routeProvider.when('/home', {
        template: "home",
        controller: 'homingController'
    })
        .when('/monitor', {
            template: "<p>{{firstName}}{{lastName}}</p>",
            controller: 'monitoringController'
        })
        .
        otherwise({
            redirectTo: '/'
        });
});

    mainApp.controller('monitoringController', ['$scope', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
}])

我的 HomingController.js

var mainApp = angular.module('myApp', ['ngRoute']); 
mainApp.controller('homingController', ['$scope', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
}])

我的Home.html代码:

<div ng-controller="homingController">
{{ lastName }} Hello
</div>

现在我面临问题:

1)在 homingController 中,如果我添加第一行:

var mainApp = angular.module('myApp', ['ngRoute']);

然后它给我错误:

angular.js:14328 错误:[$controller:ctrlreg] 名为“homingController”的 Controller 未注册。

1)在 homingController 中,如果我不添加,则添加第一行:

var mainApp = angular.module('myApp', ['ngRoute']);

然后它给我错误:

angular.js:14328 错误:[$controller:ctrlreg] 名为“homingController”的 Controller 未注册。

谢谢!!

最佳答案

您声明了该模块两次,

//删除 controller.js 文件中的这一行

var app = angular.module("myApp", []);

///

app.controller("homingController", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});

<强> DEMO

关于javascript - 为什么我的 Controller 没有在下面的代码中注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46804850/

相关文章:

javascript - jQuery Mobile 在点击时刷新当前页面

可以查看 PDF 的 Javascript 和 CSS Lightbox

javascript - 从过滤的对象中获取 Firebase 唯一 ID

angularjs - 如何将一些 Angular 元素附加到 div 而不在 Controller 中进行 dom 操作?

javascript - 消息 : Object doesn't support this property or method

javascript - 使用 $q.all 的 Angular Promises

javascript - d3js 树布局中的对 Angular 线路径看起来不正确

javascript - 如何在 angularjs 中使用 HTML5 地理定位

javascript - 将项目从 JSON 对象推送到 Angular js 中的下拉列表

angularjs - 使用 Typescript 的 Ionic 1 应用程序中的 Cordova 插件