在angularjs中向控制器发送值并返回数组

时间:2018-05-08 16:32:19

标签: asp.net angularjs asp.net-mvc angularjs-ng-repeat angularjs-ng-click

我想将cod发送到控制器并返回数组

当按下li时你必须​​向控制器发送一个代码,在这种情况下我正在设置示例7.一旦代码到达控制器,我将有一个我必须显示的列表表格中的ng-repeat

SCRIPT

<script type="text/javascript">

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

    app.value('studentInfo', [
      { id: 1, name: 'Mahedee Hasan', credit: 20, semester: '8th' },
      { id: 3, name: 'Enamul Haque', credit: 15, semester: '7th' }
    ]);

    app.controller('myCtrl', ['$scope', 'studentInfo', function ($scope, studentInfo, $http, $window) {
        $scope.myClickList = function () {
            $scope.studentInfo = studentInfo;
        };

        var Cod = "7";
        $scope.myDataCountry = [];
        $scope.ButtonCountry = function (Cod) {
            $http.
                post("/Country/Angular", { CodH: Cod }).success(function (result) {
                $scope.myDataCountry = result;
            });
        };

    }]
  );
</script>

查看

<li><a data-toggle="tab" href="#calificaciones" ng-click="ButtonCountry ()"><span>Country</span></a></li>


    <div ng-app="myApp" ng-controller="myCtrl">
<table class="table">
    <tr>
        <th>ID</th>
        <th>Country</th>
    </tr>
    <tr ng-repeat="C in myDataCountry">
        <td>{{C.ID}}</td>
        <td>{{C.Country}}</td>
    </tr>
</table>
    </div>

CONTROLLER

    public JsonResult Angular(string codCountry)
    {

        var country = (from a in dbCountry.Country
                         where a.CodPersona == codCountry
                         select a.Country).ToList();

        return Json(country , JsonRequestBehavior.AllowGet);
    }

I tried thisto

1 个答案:

答案 0 :(得分:0)

首先,你的li元素不在你的app指令中,这意味着它不会检测到这个函数,你需要确保你的li元素在app范围内

<!-- li is outside the scope --> 
<li><a data-toggle="tab" href="#calificaciones" ng-click="ButtonCountry(1)"><span>Country</span></a></li>
    <div ng-app="myApp" ng-controller="myCtrl">
<!-- end --> 

<!-- li is within the scope --> 

    <div ng-app="myApp" ng-controller="myCtrl">
<ul>
<li><a data-toggle="tab" href="#calificaciones" ng-click="ButtonCountry(1)"><span>Country</span></a></li></ul> 
<!-- end --> 

当然,您需要更改您的html元素,这意味着ul的{​​{1}}父项也是最重要的。

您的操作网址错误,您的控制器显示操作名称为li但您出于某种原因使用CalificacionesAngular,另一件事我注意到您从未将代码传递给您的函数,这意味着 这个

Angular

,您发布的数据与参数名称不相似, 你必须改变这个

ng-click="ButtonCountry ()" 
 //should be this 
ng-click="ButtonCountry('thecode')" 

可能还有一些问题,这些是我目前可以看到的问题,请调试并提供有关您所遇到的错误的更多详细信息。 您可以检查的一个很好的示例是thisthis,我建议您阅读DirectivesBindingscopeEvents