在ng-repeat內Checkbox預設選中

Insus.NET發表於2018-08-07

Angularjs的ng-repeat是用來迴圈產生呈現資料。

當我們需要在ng-repeat迴圈中呈現一系列Checkbox時,某些checkbox選項是預設選中的。


在ASP.NET MVC程式中的Entity,準備一些資料:

 public IEnumerable<Car> Cars()
        {
            return new List<Car>()
            {
                {new Car() { ID = 1, Name = "瑪莎拉蒂",Selected=false }},
                {new Car() { ID = 2, Name = "賓士" ,Selected=false }},
                {new Car() { ID = 3, Name = "寶馬" ,Selected=true }},
                {new Car() { ID = 4, Name = "保時捷",Selected=false  }}
            };
        }
Source Code

 

在ASP.NET MVC的控制器中,準備一個方法。這個方法是讀取Entity的資料,併為angularjs準備一個呼叫的方法:

 

 public JsonResult GetCars()
        {
            CarEntity ce = new CarEntity();
            var model = ce.Cars();
            return Json(model, JsonRequestBehavior.AllowGet);
        }

        public ActionResult CheckBox_IsChecked()
        {
            return View();
        }
Source Code

 

OK,下面我們開始我們真正的程式angularjs:


Html程式:

<div ng-app="PilotApp" ng-controller="CarCtrl">
    <div ng-repeat="c in Cars">
        <div>
            <input type="checkbox" value="{{c.ID}}" ng-checked="{{c.Selected}}" />{{c.Name}}
        </div>
       
    </div>
</div>
Source Code


Angularjs程式:

 var pilotApp = angular.module("PilotApp", []);
   
    pilotApp.controller('CarCtrl', function ($scope, $http) {
        var obj = {};

        $http({
            method: 'POST',
            url: '/Car/GetCars',
            dataType: 'json',
            headers: {
                'Content-Type': 'application/json; charset=utf-8'
            },
            data: JSON.stringify(obj),
        }).then(function (response) {
            $scope.Cars = response.data;
        });
       
    });
Source Code

 

程式執行最終呈現的效果:

 

相關文章