如果我给ng-app和ng-controller赋值,AngularJs不起作用

时间:2016-02-09 09:40:06

标签: angularjs ng-app

我希望你能帮助我。 我对Angular很新,所以我可能会犯一些愚蠢的错误但是,当给ng-app赋值时,它不适用于AngularJs。 我在这里举个例子: 这是我的 home.html 不起作用(当我说“不起作用”时,我的意思是我看到打印的“{{name}}”而不是它的值。

<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script>
var req={
        method: 'POST',
        url: 'http://localhost:8080/ConnectionDb/WebAppDbServlet',
        data: {"nome":$scope.name}
    }
    var app=angular.module('noteApp', [])
    app.controller('noteCtrl', function ($scope, $http){
        $scope.addNote = function () {
            $http(req).success(function(data, status, headers, config) {
                $scope.nome = data;
            }).error(function(data, status, headers, config) {

            });
        }
    })
</script>
</head>
<body ng-app="noteApp">
    <div ng-controller="noteCtrl">
        <form>
            <div>
            Insert your name: <input type="text" name="name" data-ng-model="name"><br>
            </div>
        </form>
        <p>Hola {{name}}</p>
    </div>
</body>
</html>

但如果我像这样改变它

<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script>
var req={
        method: 'POST',
        url: 'http://localhost:8080/ConnectionDb/WebAppDbServlet',
        data: {"nome":$scope.name}
    }
    var app=angular.module('noteApp', [])
    app.controller('noteCtrl', function ($scope, $http){
        $scope.addNote = function () {
            $http(req).success(function(data, status, headers, config) {
                $scope.nome = data;
            }).error(function(data, status, headers, config) {

            });
        }
    })
</script>
</head>
<body ng-app>
    <div>
        <form>
            <div>
            Insert your name: <input type="text" name="name" data-ng-model="name"><br>
            </div>
        </form>
        <p>Hola {{name}}</p>
    </div>
</body>
</html>

它应该完美无缺。 有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您正在使用req设置$scope.name变量,但此时未定义范围。如果您打开控制台,您将看到错误。试试这个:

http://plnkr.co/edit/LqZNX8BYnCnbUD29YRfi?p=preview

<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script>
var req={
        method: 'POST',
        url: 'http://localhost:8080/ConnectionDb/WebAppDbServlet',
    }
    var app=angular.module('noteApp', [])
    app.controller('noteCtrl', function ($scope, $http){
        $scope.addNote = function () {
            req.data={"nome":$scope.name}; 
            $http(req).success(function(data, status, headers, config) {
                $scope.name = data;
            }).error(function(data, status, headers, config) {

            });
        }
    })
</script>
</head>
<body ng-app="noteApp">
    <div ng-controller="noteCtrl">
        <form>
            <div>
            Insert your name: <input type="text" name="name" data-ng-model="name"><br>
            </div>
        </form>
        <p>Hola {{name}}</p>
    </div>
</body>
</html>

错误的变量名称(“nome”而不是“name”)与您的问题无关,但仍需要更正

答案 1 :(得分:0)

在您的视图中,您使用的是Expression<Func<object>> f = () => o; // replace 'object' with your own type f.Validate(); ,但在控制器内部,您将数据放在{{ name }}内。

只需更改$scope.nome

即可

答案 2 :(得分:0)

在“var app = angular.module('noteApp',[])”后面缺少“;”,因此noteApp未初始化。