Angularjs 为什么我的角度代码不工作?

Angularjs 为什么我的角度代码不工作?,angularjs,Angularjs,作为学习练习,我用angular编写了这个简单的代码,但我不明白为什么我在浏览器中得到了错误的结果 我在浏览器中看到的结果是文本“{{helloMessage}}”,而不是“HelloWorld” 守则: <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UTF-8"> <title>Hello World</title> </head>

作为学习练习,我用angular编写了这个简单的代码,但我不明白为什么我在浏览器中得到了错误的结果

我在浏览器中看到的结果是文本“{{helloMessage}}”,而不是“HelloWorld”

守则:

<!DOCTYPE html>
<html lang="en" ng-app>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>

<h1 ng-controller="HelloWorldCtrl">{{helloMessage}}</h1>

<script src="angular.js"></script>
<script type="text/javascript">
    function HelloWorldCtrl($scope){
        $scope.helloMessage = "Hello World";
    }
</script>

</body>
</html>

你好,世界
{{helloMessage}}
函数HelloWorldCtrl($scope){
$scope.hellomemessage=“你好世界”;
}
这是输出,我在浏览器中没有看到任何错误:


检查此工作状态

这是您的代码工作正常!!!!!! 函数HelloWorldCtrl($scope){ $scope.hellomemessage=“你好世界”; }

{{helloMessage}}

您的代码不起作用有几个原因

  • 您没有创建角度应用程序的实例。控制器必须作为属性存在于现有angular应用程序中。 它可以这样创建<代码>角度模块('应用',[]) 现在控制器可以像这样附加到它上:

    angular.module('app', [])
       .controller('HelloWorldCtrl',HelloWorldCtrl);
    
    function HelloWorldCtrl($scope){
       $scope.helloMessage = "Hello World";
    }
    
  • 您没有正确使用角度依赖项注入。通过使用
    $inject
    属性,可以确保在运行时注入您的
    $scope
    参数,如下所示:

     angular.module('app', [])
      .controller('HelloWorldCtrl',HelloWorldCtrl);
    
     HelloWorldCtrl.$inject = ['$scope'];
    
     function HelloWorldCtrl($scope){
        $scope.helloMessage = "Hello World";
     }
    

  • 通过这些更改,代码可以正常工作。请参见

    您的代码很好。只需在ng控制器之前注入src,即
    。确保
    angular.js
    文件位于根目录中。
    您的代码是plunker

    
    {{helloMessage}}
    函数HelloWorldCtrl($scope){
    $scope.hellomemessage=“你好世界”;
    }
    
    更新:我想您对angular.js的src不在根目录下。尝试删除
    并添加

    在它的位置。

    当您想要在HTML中呈现angularJs应用程序变量时,它必须在angular上下文中定义。因为这个函数不是在angular上下文中定义的,而是作为javascript函数定义的,所以它不起作用


    函数HelloWorldCtrl($scope){$scope.helloMessage=“Hello World”}

    可能是angular.js,无法正确导入!!!angular.js确实正确导入。您创建了一个函数
    HelloWorldCtrl
    而不是
    ng控制器
    @gaurav bhavsar=>您能解释一下我做错了什么吗这可能会有帮助:不是真的,兄弟,请看我的答案和正在工作的plunker。他只是在控制器后面注射了angularjs。我值得你投一票:P@AlexRumbaNicked你说得对,我投了你一票。不过我还是不喜欢,这对一个刚接触Angular的人来说有点太僵硬了,他应该学习最佳实践和正确的设置方法。是的,但他的问题集中在一件事上,而你只是用佳能杀死了苍蝇:)。你应该为你的解释投赞成票:)但是他的代码不起作用不是因为你提供的原因。你的兄弟在哪里??我的意思是,你提供的资料一定不完整。你有类似于brother.html的东西吗?你检查过我的东西了吗?我看不到你对这个问题的任何解释。@Alex Rumba在重新处理控制器的工作后,如果注入src,他会记错。@hadiJZ那么他的问题一定是他的问题的根源angularjs@Yanshof你能改变你的资料来源吗。但必须在顶部注入src
    angular.module('app', [])
       .controller('HelloWorldCtrl',HelloWorldCtrl);
    
    function HelloWorldCtrl($scope){
       $scope.helloMessage = "Hello World";
    }
    
     angular.module('app', [])
      .controller('HelloWorldCtrl',HelloWorldCtrl);
    
     HelloWorldCtrl.$inject = ['$scope'];
    
     function HelloWorldCtrl($scope){
        $scope.helloMessage = "Hello World";
     }
    
    <script src="angular.js"></script>
    <h1 ng-controller="HelloWorldCtrl">{{helloMessage}}</h1>
    <script type="text/javascript">
        function HelloWorldCtrl($scope){
            $scope.helloMessage = "Hello World";
        }
    </script>