Angularjs没有提供来自控制器的数据



我是AngularJS的新手。

我正在关注MEAN Stack简介:构建端到端应用程序

我有一个简单的html文件来测试angularjs。

index.html

<html>
    <head>
        <meta charset="utf-8">
        <title>Stack POC</title>
        <script type="application/javascript" src="app/scripts/controllers/user_controller.js"></script> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    </head>
    <body ng-app="userListApp">
        <div ng-controller="userListController">
            <h1>No of users {{userCounts}}</h1>
        </div>
    </body>
</html>

app/scripts/controllers/user_controller.js

angular.module('userListApp', []).controller('userListController', function($scope){ 
                $scope.userCounts = 10;
                });

但当我尝试运行这个时,它并没有给予。

用户数{{userCounts}}

而不是计数中的10

我正在使用gulp-and-gulp-connect来运行开发服务器。

gullfile.js

var gulp = require('gulp'),
    connect = require('gulp-connect');
gulp.task('serve', function() {
    connect.server({
        root: '.',
        port: 8888
    }); 
}); 
gulp.task('default', ['serve']);

package.json

{
  "name": "poc",
  "version": "1.0.0",
  "description": "",
  "main": "gulpfile.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-connect": "^3.2.2"
  }
}

使用firefox 45.0.2查看此页面。

这是因为您只提供了一个函数,而没有提供完整的控制器。

试试这样的东西:

<html>
    <head>
        <meta charset="utf-8">
        <title>Stack POC</title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> 
        <script>
        angular.module('userListApp', []).controller('userListController', function($scope){
            $scope.userCounts = 10;
        });
        </script>
    </head>
    <body ng-app="userListApp">
        <div ng-controller="userListController">
            <h1>No of users {{ userCounts }}</h1>
        </div>
    </body>
</html>

您需要一个由angular.module()函数创建的模块(在您的示例中,我将其命名为userListApp)。第二个参数是依赖项(空数组表示没有)。在该模块上,您可以构建一个控制器。您必须将$scope作为参数传递给控制器函数,才能在示例中使用它。在控制器中,您可以像在上一个函数中尝试的那样分配引用的变量。

您没有在脚本中的任何位置实例化AngularJS应用程序。您需要在body标记中提供应用程序名称作为ng-app的参数,并修改script

需要使用app.controller将函数userListController附加到AngularJS控制器。

请参考以下工作小提琴:

https://jsfiddle.net/akonchady/7kfv4ssk/1/

最新更新