簡體   English   中英

從javascript訪問數據集中的每個元素

[英]access each element in a data set from javascript

我想從javascript訪問數據集中的每個元素。 我想在我的JavaScript中執行以下操作。

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails;
        alert(data[i]);
}

但是我不斷收到這個錯誤

未終止的模板文字

我嘗試過的其他東西..

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails.ElementAt(i);

}

for(var i = 0; i < @Model.saVM.mapDetails.Count; i++){
        var data = @Model.saVM.mapDetails.ElementAt(@:i);

}

這就是為什么我需要這樣做

我有一個MVC應用程序,它將Model中的數據綁定到html表中。 行和列的數量是可變的,具體取決於模型中的數據。

public class StudentAssessmentViewModel
{
    public StudentAssessmentViewModel() { }
    public List<ShortResult> results { get; set; }        
    public List<ShortStudent> students {get; set;}
    public List<MapDetail> mapDetails { get; set; }
    public List<ResultType> resultTypes { get; set; }        
    public List<ShortResult> calculatedResults { get; set; }
    public List<Mean> means { get; set; } 
}

現在在此表中,當我創建一個td時,我檢查Model.results(與當前學生(在行中)和當前Header(在列中)匹配)中是否存在要放入當前td中的值和顏色,如果是,則放置值和顏色,否則向前移動,即創建下一個td。

然后,我將此表轉換為Kendo網格,該網格保留了td值,但刪除了所有顏色。

所以現在我必須分別解析結果列表,並再次為kendogrid中的每個單元格分配顏色。

我舉個簡單的例子,希望對您有所幫助

視圖

      @model  IEnumerable<JqueryAjaxClientProject.Models.Details> 


@{
    Layout = null;
}

<!DOCTYPE HTML>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>modalPassTOjavascirpt</title>
</head>
<body>
    <div>
    </div>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script>
        $(document).ready(function () {

            var model = '@Html.Raw(Json.Encode(Model)))'
            console.log(model)
            if (model != null) {

                //loop over the model
            }
            });

    </script>

</body>

控制器:

  public List<Details> getCollection () {

        List<Details> obe = new  List<Details>();
        for (int i = 0; i < 10; i++)
        {
            Details obj = new Details();
            obj.Id = 1;
            obj.name = "nae";

            obe.Add(obj);
        }

        return obe;
    }

    public ActionResult modalPassTOjavascirpt() {

        var get = getCollection();

        return View(get);
    }

產量 在此處輸入圖片說明

更新

JS /腳本

  var model = '@Html.Raw(Json.Encode(Model))'
           //   console.log(model)

            if (model != null) {

                $.each(JSON.parse(model), function (i, data) {

                    var row = data;
                    console.log(row);
                });

            }
            });

輸出值 在此處輸入圖片說明

要循環播放,您需要執行以下操作:

<script>
var model = @Html.Raw(Json.Encode(@Model.saVM.mapDetails));
$(model).each(function (index, item) {
        console.log(item.MapId);
        console.log(item.MapName});
</script>

假設您在mapDetails中具有MapId和MapName屬性。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM