網站首頁 編程語言 正文
在遍歷數組、集合的時候,通常要獲取元素的索引,本篇體驗使用Knockout獲取索引的2種方法。
假設有這樣的一個模型:
namespace UseIndex.Models
{
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
}
在HomeController中,先模擬一個Student的集合,在投影出Name屬性的集合,最后以Json返回給前臺視圖。
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using UseIndex.Models;
namespace UseIndex.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult GetStudentNames()
{
var students = new List<Student>()
{
new Student(){Id = 1, Name = "小明"},
new Student(){Id = 2, Name = "嘯天"}
};
var names = from student in students
select new {student.Name};
return Json(names, JsonRequestBehavior.AllowGet);
}
}
}
在Home/Index.cshtml中:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/knockout-2.2.0.js"></script>
<script type="text/javascript">
$(function() {
var vm = new ViewModel();
ko.applyBindings(vm);
vm.init();
});
function ViewModel() {
var self = this;
self.items = ko.observableArray([]);
self.showItemIndex = function(item, event) {
var context = ko.contextFor(event.target); //獲取綁定元素的上下文;event.target綁定View Model的DOM元素
var index = context.$index();
alert("當前索引是:" + index);
};
self.init = function() {
$.getJSON('@Url.Action("GetStudentNames","Home")', function(data) {
var arr = [];
for (var i = 0; i < data.length; i++) {
arr[i] = data[i].Name;
}
self.items(arr);
});
};
}
</script>
<style type="text/css">
//樣式略
</style>
</head>
<body>
<div>
<table>
<thead>
<tr>
<th>索引</th>
<th>編號</th>
<th>名稱</th>
<th>在View Model中的索引</th>
</tr>
</thead>
<tbody data-bind="foreach: items">
<tr>
<td data-bind="text: $index"></td>
<td data-bind="text: $index() + 1"></td>
<td data-bind="text: $data"></td>
<td><a href="#" data-bind="click: $root.showItemIndex">點擊顯示索引</a></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
以上,$data是指當前集合元素。$root是指根context中的ViewModel。
運行:
總結
獲取集合或數組元素的索引有2種方式:
1、通過data-bind="text: $index"或data-bind="text: $index() + 1"
2、在View Model中通過方法來獲得:先獲取到上下文,再context.$index()
原文鏈接:https://www.cnblogs.com/darrenji/p/3849937.html
相關推薦
- 2022-07-01 Go官方限流器的用法詳解_Golang
- 2022-02-20 Android?WebView實現全屏播放視頻_Android
- 2022-08-26 Python中CSV文件(逗號分割)實戰操作指南_python
- 2023-12-07 mitt 的使用
- 2022-12-28 golang?gin?監聽rabbitmq隊列無限消費的案例代碼_Golang
- 2023-01-20 React?Redux管理庫示例詳解_React
- 2022-03-31 C語言16進制與ASCII字符相互轉換_C 語言
- 2022-10-10 python讀取和保存為excel、csv、txt文件及對DataFrame文件的基本操作指南_py
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支