0

我是 MVVM 的新手,我想了解,如果您在后端有一个模型,比如说 ac# 库,它正在从数据库或任何其他服务中获取数据。模型将如何通知视图模型。我了解在 MVVM INotifyprovier 中为 WPF 执行此操作(只是在某处阅读),但是基于 Web 应用程序的场景怎么样,java-script 中的 Viewmodel 是否总是必须 ping 模型以识别模型中是否有更改,然后传播到用户界面。我假设视图模型总是必须以 10 分钟左右的设置间隔将 Ajax 请求发送到 asmx 或 api(只是一个示例)。这就是它端到端的工作方式。任何例子都会很棒。

因为其中一个属性是自动 UI 刷新,所以我假设需要定期从服务器询问新数据。我在网上看到的很多例子只是 ViewModel 和 View 之间的交互,但我几乎看不到 Model、ViewModel 和 View 结合在一起的任何东西。

我可以认为,如果使用 SignalR 从服务器向客户端发送 ping,则可以更新 Viewmodel 并因此更新 View。

但是,如果每次您需要从 Sever 询问一组新数据,那么 Knockout 的炒作是怎么回事,Jquery 已经这样做了一段时间,除了声明性绑定的东西,在淘汰赛库中。

感谢有人可以纠正我。

谢谢

4

1 回答 1

1

获取新数据取决于您的客户端应用程序,因为服务器没有任何可观察对象的概念。还有一个有用的映射插件,可以自动将您的 javascript 数据从服务器映射到 observable。这样,当您获取数据时,您不必重新映射数据。

但是,可以通知客户端来自服务器的更改。一种方法是通过 HTML5 WebSockets 对客户端进行服务器推送更改。SignalR 是该任务的一个很好的库候选者。它将打开 WebSockets 连接,以便服务器可以通知客户端更改。您将使用 Service Broker SqlDependency 来触发更新事件通知。一个例子可以在这里找到。

祝你好运!

这里还有一个非常好的视频,可以观看关于 knockoutjs 的视频,它可以让您了解该框架。

于 2013-02-11T23:55:21.477 回答