- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题更多地与如何构建代码有关,或者更准确地说,是模型在使用 Knockout 的 MVVM 模式中的职责。我正在将 Knockout 与 Durandal 一起使用,但问题可能是 MVVM 模式的一般问题。例如
我有这样的模型:
var Model = function(data){
this.name = data.name;
this.count = ko.observable();
};
Model.prototype.getCount = function(){
var self = this;
setInterval(function(){
//some ajax call to get the count
self.count(data.count);
}, 1000);
};
我的 viewModel 收集了我的模型,例如:
var ViewModel = function(){
this.models = ko.observableArray([]);
//ajax call to get the required data
data.Items.forEach(function(item){
var model = new Model(item);
model.getCount();
this.models.push(model);
}
};
现在我的看法
<div data-bind="foreach: models">
<div data-bind="text: name"></div>
<div data-bind="text: count"></div>
</div>
我的问题是因为我的模型有一个可观察的属性,只要属性发生变化,它就会更新 View 。但本质上它是一个模型,更新 UI 的责任应该完全由 View 模型承担。
因此,与更新计数相关的代码本质上应该是 getCount,存在于 View 模型中,而模型不适合它。哪些代码应该留在 viewModel 或模型中的区别在哪里。
最佳答案
老实说,我会将您的模型归类为 View 模型。您的模型是您从 Ajax 调用返回的 json 对象,您为每个对象创建一个 View 模型。就我而言,嵌套 View 模型没有问题。
关于javascript - MVVM 中模型的职责,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15948396/
我刚刚开始 iOS 应用程序开发,到目前为止,这是一次很棒的体验。 Apple 文档很棒,但我有一些问题不是技术性的,只有有经验的人才能回答。 我有一堆 UIViewController 处理它们控制
我几天前开始学习 react-redux-immutable,但我仍然对构建我的应用程序感到困惑。我有 php(symfony/laravel MVC 背景),所以要理解一些 javascript 概
每次查看 SharpDX 代码并尝试遵循 DirectX 文档时,我都会遇到困难。有没有一个地方清楚地列出了每个编号的类映射到什么以及它们存在的原因? 我说的是这样的事情: D
我正在使用 Robospice 库 创建应用程序。这是处理互联网连接的绝佳选择,因为库的核心是基于 Android 服务的,所以我们的连接与 Activity 生命周期无关。 我们正在创建我们的请求并
我可能在这里分析过度了,但是根据我对 MVC 的阅读,似乎有很多关于如何做事情的观点。 是否有一个“最佳实践”网站或文档来定义 MVC 各个部分的职责? 请记住,我使用 EF/Repository&U
我是一名优秀的程序员,十分优秀!