问题说的都是真的.我想在KnockoutJS中将一个可观察数组复制到另一个数组.
RP *_*yer 61
要克隆observableArray,您需要执行以下操作:
var viewModel = {
array1: ko.observableArray(["one", "two"]),
array2: ko.observableArray()
};
viewModel.clone = function() {
viewModel.array1(viewModel.array2.slice(0));
};
Run Code Online (Sandbox Code Playgroud)
如果您只想复制一份,那么您可以:
viewModel.array1(viewModel.array2());
Run Code Online (Sandbox Code Playgroud)
第二个例子的问题是底层数组是相同的,因此推送到array1或array2将导致两者都具有新值(因为它们都指向同一个数组).
Gar*_*ish 45
我面临同样的任务; 克隆一个可观察的数组.我能弄清楚如何做的唯一方法是将observable转换为JS对象,然后将该对象转换为可观察对象.以下函数需要KnockoutJS映射插件:http: //knockoutjs.com/documentation/plugins-mapping.html
function cloneObservable(observableObject) {
return ko.mapping.fromJS(ko.toJS(observableObject));
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
42237 次 |
| 最近记录: |