无法传递ID并从ajax或AngularJS调用Controller

时间:2015-01-30 12:10:12

标签: javascript ajax asp.net-mvc angularjs

我有一个对象表,我想在点击时传递ID,并且没有刷新填充div或表,我尝试使用AJAX和angular但无法通过ID

如果我在特定号码上修复了ID,那就可以了。

在视图中:

<script>
    function CountryController($scope, $http) {
        $http.get("/api/SportApi/GetCountry/").success(function (response) {
            $scope.controllerFunction = function (value) {
                console.log(value);
            }
            obj = JSON.parse(response);
            $scope.country = angular.fromJson(obj);
        });
    }
</script>
<a class="item item-thumbnail-left" ng-href="#/api/SportApi/GetCountry/{{x.id}}" ng-click="CountryControler(x.id)">
    click for countries
</a>

2 个答案:

答案 0 :(得分:0)

在您的观点中,您应该:

<a class="item item-thumbnail-left" href ng-click="CountryControler(x.id)">click for countries</a>

其中href将阻止链接重新加载页面,ng-click将调用控制器上的方法。 在控制器中,您应该在范围变量上定义该函数:

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

myApp.controller('ExamleController', ['$scope', function($scope) {
  $scope.CountryController = function(id) {
            $http.get("/api/SportApi/GetCountry/" + id).success(function (response) {
                $scope.controllerFunction = function (value) {
                    console.log(value);
                }
                obj = JSON.parse(response);
                $scope.country = angular.fromJson(obj);
            });
        }
}]);

验证您是否具有自举角度js(通过使用ng-app定义html的根元素)。

验证是否已将控制器类附加到视图中(通过使用ng-controller定义控制器html元素)。

您还应该在调用&#34; x.id&#34;时验证您是否在视图上获得了正确的ID。

在这种情况下, $ scope.controllerFunction似乎是不必要的。

答案 1 :(得分:0)

你可以试试这个:

function CountryController($scope, $http, id) {
console.log(id)
            $http.get("/api/SportApi/GetCountry/").success(function (response) {
                $scope.controllerFunction = function (value) {
                    console.log(value);
                }
                obj = JSON.parse(response);
                $scope.country = angular.fromJson(obj);
            });
        }