나는 녹아웃 JS를 처음 사용하지만 매일 배우는 모든 것을 즐기고 있습니다.KnockoutJS 및 MVC 3.0이 포함 된 중첩 템플릿
여기 내 질문입니다. 각, 내 색인()는 HomeController의 방법은 ParentModel의 목록을 MasterModel의 인스턴스를 반환
public class MasterModel
{
public int Id { get; set; }
public string Description { get; set; }
public ICollection<ParentModel> Parents { get; set; }
}
public class ParentModel
{
public int Id { get; set; }
public string Description { get; set; }
public ICollection<ChildModel> Children { get; set; }
}
public class ChildModel
{
public int Id { get; set; }
public string Description { get; set; }
}
그리고 그 다음 Loading and saving data 튜토리얼을 바탕으로, 이제 내가 MVC 3.0 뷰 모델에서 다음과 같은 클래스가 있다고 가정 해 봅시다 차례로 ChildModel의리스트가 포함됩니다. 나는 MasterModel에 각 ParentModel, ChildrenModel 목록 행 ParentModel의 목록을 표시 할 중첩 된 템플릿을 사용할 수 있도록하고 싶습니다
@model SomeNamespace.Models.MasterModel
(...)
<script type="text/javascript">
var initialData = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));
var viewModel = {
parents: ko.observableArray(initialData.Parents),
(...)
};
: 클라이언트 측에, 나는 다음 볼 수 있습니다. 또한 두 목록 (ParentModel 및 ChildrenModel)을 관찰 가능 배열로 지정하여 각 목록의 항목을 동적으로 추가하거나 제거 할 수 있습니다.
에게 는나는이가 넉 아웃 JS 사이트의 "template" binding 기사를 다음의 구현을 시도하지만,의 ... 관찰 배열 목록을 포함 관찰 배열을 구현하는 방법을 잘 생각해야 ...
는 누군가가 날 포인트 올바른 방향으로?
미리 감사드립니다.
안녕하세요,이 갈 방법은 확실히이지만,에서 내 예제, 내 ** initialData ** 변수를 주인, 부모 및 자녀에게 어떻게 변환하겠습니까? 내 문제는이 시점에서 녹아웃보다 더 자바 스크립트에 관련이있을 것 같아요 ... :-) – Talisker
** initialData ** 거의 비슷하게 보일 것입니다. 저는 Json 구조를'@IEnumerable'가정하에 조롱했습니다. 실수였습니다. '@model SomeNamespace.Models.MasterModel'을 사용하면 json이 배열이 아니라 3 개의 속성 (Id, Description 및 Parents라는 배열)을 포함하는 하나의 Master 객체가됩니다. 또한 내가 준 예제에서는 마스터 배열 만 관찰 했으므로 UI는 해당 배열의 변경 (마스터 객체의 푸시/팝 등)에 반응합니다. Look in this : [매핑] (http://knockoutjs.com/documentation/plugins-mapping.html) –
매핑 플러그인은 정확히 내가 필요로하는 것입니다. 많은 감사합니다! – Talisker