Javascript can';t绑定angularjs中的作用域变量

Javascript can';t绑定angularjs中的作用域变量,javascript,angularjs,dependency-injection,angularjs-scope,Javascript,Angularjs,Dependency Injection,Angularjs Scope,我有以下文件: index.html: <!DOCTYPE html> <html> <head> <title>Gestore Anagrafica</title> </head> <body> <div> <h3>Insert new person</h3> <div ng-app="Person" ng-control

我有以下文件:

index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Gestore Anagrafica</title>
</head>
<body>
    <div>
        <h3>Insert new person</h3>
        <div ng-app="Person" ng-controller="PersonController">
            First Name: <input type="text" ng-model="firstName"><br>
            Last Name: <input type="text" ng-model="lastName"><br>
            Age: <input type="number" ng-model="age"><br>
            <br>
            Full Name: {{fullName()}} <br>
            Is major: {{isMajor()}} <br>
            <button ng-click="add()">Add Person</button>
        </div>
    </div>
    <script type="text/javascript" src="js/angular.js"></script>
    <script type="text/javascript" src="js/RegistryService.js"></script>
    <script type="text/javascript" src="js/PersonController.js"></script>
</body>
</html>
js/PersonController.js:

var app = angular.module('Person', ['RegistryService']);
app.controller('PersonController',['registry', function($scope, registry) {
    $scope.firstName = "testName";
    $scope.lastName = "";
    $scope.age = 20;

    $scope.isMajor = function()
    {
        return $scope.age > 18;
    };

    $scope.add = function()
    {
        registry.add({  'firstName': $scope.firstName,
                        'lastName': $scope.lastName,
                        'age': $scope.age});

    };

    $scope.fullName = function() 
    {
        return $scope.firstName + " " + $scope.lastName;
    };
}]);
绑定没有发生:当我更改名称或年龄时,什么都没有发生,而且在开始时输入都是空的,但我希望看到年龄为20,名字为testName。浏览器的控制台显示没有错误。我错过什么了吗

约束:服务“RegistryService”必须位于另一个文件中

问题: 用这两条线

var app = angular.module('Person', ['RegistryService']);
app.controller('PersonController',['registry', function($scope, registry) {

我告诉您,名为Person的模块需要一个名为RegistryService的东西才能工作,controller PersonController将使用位于RegistryService中的“registry”东西(因此,如果我在这里输入一些未定义到RegistryService中的东西,则是一个错误)。函数($scope,registry)是使用全局变量$scope和取自“RegistryService”的变量注册表的控制器的构造函数。我对依赖项注入的总体理解是否良好?

您也需要描述
$scope
注入,因为您希望它作为第一个参数在控制器函数中可用:

var app = angular.module('Person', ['RegistryService']);
app.controller('PersonController', ['$scope', 'registry', function($scope, registry) { }]);

您没有正确地注入$scope

app.controller('PersonController',['$scope', 'registry', function($scope, registry) {
app.controller('PersonController',['$scope', 'registry', function($scope, registry) {