KnockoutJS
뷰 모델에서 일부 조작을 수행 할 수있는 함수를 어떻게 만들 수 있습니까?knockoutjs를 사용하여 뷰 모델 조작
모델 :
public class ViewModel
{
public int User { get; set; }
public string Address { get; set; }
public string ZipCode { get; set; }
public List<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
자바 스크립트 : 여기에이 같은 일을 추가
<script type="text/javascript">
var Product = function (Id, Name) {
self = this;
self.Id = Id;
self.Name = Name;
}
function Add() {
viewModel.products.push(new Product(2, "bread"));
}
function Remove(product) {
viewModel.products.remove(product);
}
var viewModel = ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)));
viewModel.products = ko.observableArray();
ko.applyBindings(viewModel);
Add();
console.log(viewModel.products().length);
var t = new Product(2, "bread");
Remove(t);
console.log(viewModel.products().length);
</script>
하지만 function Remove(product)
는 array
에서 제품을 제거하지 않습니다. 오류가 발생하지 않고 console
은 단지 1을 인쇄합니다 (viewModel.products().length
호출 모두).
KnockoutJS가 페이지의 어느 곳에서나 호출 할 수 있도록 적절한 기능을 만들려면 어떻게해야합니까?
안녕하세요,'viewModel.products = ko.observableArray();를 사용하지 않으면'var mapping = .... '을 사용할 때'pushModel'의 메소드가 아니라는 오류가 발생합니다. '. 또한, 제품은'viewModel.Products'에서 정의되지 않습니다. – Quoter
안녕하세요, 작동하는 바이올린을 보셨나요? 매핑 라이브러리를 포함하고 있습니까? http://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.js – hutchonoid
나는 또한 내가 사용하고있는 녹아웃 버전을 확인할 것입니다. . 당신은 바이올린 코드를 가지고 그대로 사용할 수 있습니다. 어떻게 지내는지 알려줘. – hutchonoid