2

我将模型定义为

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 插件属性“名称”不等于“名称”。

如何定义从“名称”到“名称”的映射?

4

1 回答 1

2

首先,您不需要name在 viewModel 中指定属性,因为映射插件会为您添加它。

对于大小写,更改您的序列化约定以小写属性。

或者,您可以做我所做的并在您的视图模型中接受大写。尽管它与常见的 Javascript 约定不太吻合,但我已经接受它作为“来自服务器的属性”。

我发现知道哪些是从映射创建的以及哪些用于视图模型事物非常方便。当然,您不会在视图模型中看到服务器生成/映射的属性,但它们会在那里。

我使用它在服务器上指定和创建服务器端视图模型,将它们序列化并将它们映射到我的淘汰模型。这样我就可以只专注于淘汰视图模型中的行为。

如果您需要将任何服务器端对象转换为 javascript“对象”,您可以在映射对象中实现该转换,就像我在这里做的那样

于 2012-02-13T16:21:59.457 回答