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