knockout.js 如何使用挖空Map将一个属性Map到另一个属性?

bjg7j2ky  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(173)

我将模型定义为

public class Model
{
    public string Name { get; set;}
}

和JS中的ViewModel作为

var vm = {
   name : ko.observable()
}

此外,我还有回调函数,它应该更新视图模型:

function callback(data)
{
   ko.mapping.fromJS(data, {}, viewModel);
}

但对于ko.mapping插件属性“name”不等于“Name”。
如何定义从'Name'到'name'的Map?

9udxz4iz

9udxz4iz1#

首先,您不需要在viewModel中指定name属性,因为Map插件会为您添加它。
对于大小写,请更改序列化约定,使属性小写。
或者,您也可以像我一样,在视图模型中接受大写字母,尽管它不太符合常见的Javascript约定,但我已经接受它作为“来自服务器的属性”。
我发现很容易知道哪些是从Map创建的,哪些是我用于视图模型的东西。当然,你不会在你的视图模型中看到服务器生成/Map的属性,但它们会在那里。
我用它在服务器上指定和创建服务器端视图模型,序列化它们并将它们Map到我的淘汰模型。这样我就可以只关注我的淘汰视图模型中的行为。
如果您需要将任何服务器端对象转换为javascript“对象”,您可以在Map对象中实现该转换,就像我在这里所做的那样

相关问题