我正试图做的是,从其他一些较大的现有物品清单中拟定一份清单(就背景而言,具体列出某种产品的成分)。 在Knockout问题上,我仍然很抱着绿色态度,并想知道我是否失踪,因为我目前正在使用的解决办法是错的。 我有两套基本标准模板,并使用对我的看法模式的两个可观察阵列(现有成分清单中一个,产品特定成分清单中一个)具有约束力的信标。
<div data-bind="template: {name: ingredientTypeTemplate , foreach: ingredientTypes}"></div>
<div data-bind="template: {name: selectedIngredientTypeTemplate , foreach: selectedIngredientTypes}"></div>
<script>
var productTypeViewModel = {
ingredientTypes: ko.observableArray([]),
selectedIngredientTypes: ko.observableArray([]),
addIngredient: function () {
productTypeViewModel.ingredientTypes.remove(this);
productTypeViewModel.selectedIngredientTypes.push(this);
},
removeIngredient: function () {
productTypeViewModel.selectedIngredientTypes.remove(this);
productTypeViewModel.ingredientTypes.push(this);
},
};
$(document).ready(function () {
$.getJSON("/IngredientType/Index")
.success(function (data) {
productTypeViewModel.ingredientTypes($.parseJSON(data));
})
.error(function () { alert("error"); });
ko.applyBindings(productTypeViewModel);
});
</script>
<script type="text/x-jquery-tmpl" id="ingredientTypeTemplate">
<div>
<span>${Name}</span>
<a href= # data-bind="click: productTypeViewModel.addIngredient">Add</a>
</div>
</script>
这是我试图与克尼博特做些什么的最佳方式吗? 有些人感到错失,尽管我不敢肯定什么。 我确实对成分有单独的后遗体定义。 具有附加功能的类型。 能够观测到的成分微粒将随着这种类型的一系列的后继器而初步形成,该模板当时刚刚使用数据组合式的“click:添加”,但我确实不得不从处理点击的那部分中向主要的后方通报。
基本上,我只想说明我所做的工作是标准做法,还是更好(更适合Knockout)。