我在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
谢谢!
答案 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");
});
}
}]);