【发布时间】:2016-12-30 12:27:47
【问题描述】:
以下是我的代码的一个非常简化的版本..
我的html代码:
<div class="container body-content" data-bind="foreach:base">
<div class="col-md-12" data-bind="with:s">
<div class="col-md-4"><pre data-bind="text:sp"></pre></div>
<div class="col-md-7">
<div class="row" data-bind="foreach: spd">
<input type="text" class="form-control" data-bind="value:value, valueUpdate: 'input'" />
<button data-bind="click: $parent.addval">add</button><button data-bind="click: $parent.removeval">rem</button>
</div>
</div>
</div>
</div>
我的 Javascript 代码:
<script src="knockout-3.2.0.js"></script>
<script src="knockout.mapping.js"></script>
<script>
var data = [{
"s": {
"sp": "abc",
"spd": [
{
"value": ""
}
]
},
"type": "xyz",
}];
var AppScope = function () {
function BaseViewModel() {
var self = this;
self.base = ko.observableArray();
self.base(ko.mapping.fromJS(data)());
}
ko.applyBindings(new BaseViewModel());
}();
</script>
'data'数组来自服务器,数据结构非常复杂,所以$root不能用。 here 使用的样式可能是答案,但还无法弄清楚..
除了按钮之外,代码都可以工作。我想了解如何将 {value:""} 对象添加到“spd”下的数组中,并在按下 addval 和 remval 函数时将其删除。
真诚感谢所有帮助 谢谢
【问题讨论】:
标签: knockout.js knockout-mapping-plugin