http使用ng-view获取范围内的响应

时间:2017-01-02 12:46:25

标签: javascript angularjs

我在AngularJS中编写一个调用http.get到API的控制器,并返回0(现在)。我设法在控制台上显示0而没有问题,但我无法在前面的$ scope中显示它。

App.js

.controller('ssnGenAltaCtrl', ['$scope', '$http',
    function($scope, $http){
        $scope.generarRubricaAlta = function(data){
        $http({
            method: 'GET',
            url: 'url'
            }).then(function successCallback(data) {
                console.log(data.data);
                $scope.mensaje = data.data;
            }, function errorCallback(data) {
                console.log("Error");
            });
        }
    }]);

HTML

<div>
    <a class="btn btn-default" href="#" role="button" ng-click="generarRubricaAlta()">Generar Rubrica Alta</a>
    <p class="bg-primary">{{mensaje}}</p>
</div>

路由

.when("/ssnGenAlta", {
    templateUrl : "views/ssnGenAlta.html",
    controller: "ssnGenAltaCtrl"
})

JSON输出

Object
config: Object
data: "0"
headers: (d)
status: 200
statusText: "OK"
__proto__: Object

谢谢!

2 个答案:

答案 0 :(得分:1)

问题出在锚标记中:

href属性重定向到#

<div>
    <a class="btn btn-default" x:ng:href="javascript:void(0)" role="button" ng-click="generarRubricaAlta()">Generar Rubrica Alta</a>
    <p class="bg-primary">{{mensaje}}</p>
</div>

将其替换为x:ng:href =&#34; javascript:void(0)&#34;

也初始化 方法声明前的$scope.mensaje = "123";

检查双向绑定是否有效。 如果是,请更改回$scope.mensaje = "";

.controller('ssnGenAltaCtrl', ['$scope', '$http',
function($scope, $http){
    $scope.mensaje = "123"; //change this back to empty string
    $scope.generarRubricaAlta = function(data){
    $http({
        method: 'GET',
        url: 'url'
        }).then(function successCallback(data) {
            console.log(data.data);
            $scope.mensaje = data.data;
        }, function errorCallback(data) {
            console.log("Error");
        });
    }
}]);

答案 1 :(得分:0)

代码是最新的,我认为你只需要在API调用之前定义变量

.controller('ssnGenAltaCtrl', ['$scope', '$http',
function($scope, $http){
$scope.mensaje = {};//you need to define variable before API calling for 2way data binding. 
    $scope.generarRubricaAlta = function(data){
    $http({
        method: 'GET',
        url: 'url'
        }).then(function successCallback(data) {
            console.log(data.data);
            $scope.mensaje = data.data;
        }, function errorCallback(data) {
            console.log("Error");
        });
    }
}]);