如何使用AngularJS保留JSP的变量值

时间:2014-10-09 15:52:41

标签: angularjs jsp

我是AngularJS的新手。我正在尝试学习将变量的值传递给angularJS。 但由于某些未知原因,我无法做到。

以下是我认为正确的.jsp页面:

   
<body >
    <div ng-controller="customersController">
        <label>Value</label>
        <input type="text" ng-model=something></input>
        <button ng-click="punchIt()">click me!</button>
        <br>Obtained value : {{ value }}
    </div>
</body>

在相应的.js页面中,从.jsp文件传递的值未被保留。第一个警报函数应返回假设:某事物的值,但它返回假设: undefined < / em>的。 以下是.js文件:

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

myApp.controller("customersController", function($scope, $http){

    $scope.punchIt = function ($scope, $http) {

        var data = {Value: $scope.something};
        alert("assumed : "+ $scope.something);
        $http.post("http://localhost:8082/HelloWorldWS/services/HelloWorldImpl",data)
            .success(function (data, status, header) {
                alert("in success " + data);
                $scope.value = data; 
          }).error(function (data) {
                alert("in error method " + status);
                $scope.value = "error "+ data;
         });
        };
});

请提出一些建议。 感谢。

1 个答案:

答案 0 :(得分:1)

您期望在punchIt()函数声明中有两个变量($ scope和$ http),但在按钮单击时调用它们时不会传递这些变量。因此,在punchit()函数中,$ scope和$ http变量都将初始化为空(读取未定义)。

您实际上不需要将这些参数传递给您的函数。您的控制器已经通过控制器声明将这些服务注入其中。

同样声明/初始化控制器中的name变量。否则,如果您没有在输入字段中输入任何内容并尝试在$ scope中访问它,则会将其作为未定义进行检索。

您的代码更改如下所示:

myApp.controller("customersController", function($scope, $http){
    $scope.name=null;
    //OR $scope.name='';
    $scope.punchIt = function () {
    ...
    }


}