MVVM和更新ViewModel

凯尔

有关Kendo Mobile中的MVVM和数据绑定的问题:

  • account.js

    define([], function () {
        return {
            userPhone: 111
        };
    });
    
  • index.html

      <p>Phone: <span id="test-span" data-bind="html: userPhone"></span>.</p>
    
  • home-view.js

    define(["kendo", "app/account"], function (kendo, account) {
    
    var viewModel = kendo.observable({
        userPhone: account.userPhone
    });
    
    return {
        show: function() {
           viewModel.set("userPhone", account.userPhone); // LINE A
    
           account.userPhone = "222"; // LINE B
    
        },    
        viewModel: viewModel
    }
    });
    
    1. 如果没有LINE A和LINE B,则#test-span显示(空)
    2. 仅使用LINE A时#test-span显示“ 111”
    3. 仅使用LINE B#test-span显示(空)

我明白为什么#2会表现出这种方式。我只是不明白为什么#1和#3会像他们一样表现。我认为MVVM和数据绑定的全部要点是,我可以account.userPhone不必进行操作就可以更新并全局更新视图viewModel.set

假设我有home-view2.jshome-view3.js等等,我该如何更新所有viewModel来更改帐户属性?

角形大学

B行是否工作取决于所使用的框架,在这种情况下,KendoUI不是基于脏检查的。这意味着account.userName直接设置将不起作用,需要通过在模型类(如A行)中调用特殊的setter来完成更新。

例如,AngularJs基于脏检查,因此如果将B线放在控制器上或在内部调用$applyB线就可以工作,并且不需要像A线这样的代码。

角度脏检查的工作方式是拍摄普通javascript对象的快照,然后在适当的时候(在事件回调,ajax回调和setTimeouts上)拍摄另一个快照。

如果两个快照不同,account.userName则会更新所有观察到的组件,例如DOM元素-这就是与普通javascript对象进行角度双向绑定的工作方式。

看看基于Kendo小部件的Angular库的angular KendoUI

如果您对脏检查及其工作方式感兴趣,请查看Angular作者的播客,以及他们的回答,在其中与Knockout或Backbone等框架进行了比较。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVVM ViewModel和子视图

来自分类Dev

WPF MVVM案例:ItemsControl包含超链接和用于更新ViewModel中的属性的命令

来自分类Dev

从DataService MVVM Light持续更新ViewModel

来自分类Dev

从模型MVVM UWP更新ViewModel属性

来自分类Dev

了解MVVM中的模型和ViewModel

来自分类Dev

MVVM,ViewModel,模型和消息框

来自分类Dev

正确的MVVM设计模式-ViewModel和DataContext

来自分类Dev

MVVM:依赖注入和按需创建ViewModel

来自分类Dev

正确的MVVM ViewModel和模型模式

来自分类Dev

MVVM:GUI和ViewModel之间的真正分隔

来自分类Dev

MVVM:GUI和ViewModel之间的真正分隔

来自分类Dev

(WPF / MVVM)IService和ViewModel有什么区别?

来自分类Dev

MVVM中Model和ViewModel的澄清和命名约定

来自分类Dev

MVVM模式:命令绑定和ViewModel执行之间的中间视图

来自分类Dev

MVVM中子viewModel中的引用方法和存储库

来自分类常见问题

如何从后台服务和更新UI更新ViewModel的LiveData

来自分类Dev

MVVM创建ViewModel

来自分类Dev

MVVM更新组合框项目源和刷新

来自分类Dev

更新组合框MVVM(XAML和C#)

来自分类Dev

如何在MVVM模式中更新模型和查看模型?

来自分类Dev

使用ViewModel和Entity Framework 6更新实体吗?

来自分类Dev

如何使用MVVMCross和Xamarin.Android从ViewModel更新视图

来自分类Dev

C#MVVM处理并将用户ID传递给不同的模型和ViewModel

来自分类Dev

WPF和MVVM:从文本框中获取值并将其发送到ViewModel

来自分类Dev

c# MVVM wpf design 在viewmodel和view方法之间传递数据

来自分类Dev

在ObservableCollection(ViewModel)内的MVVM ObservableCollection

来自分类Dev

从MVVM中的ViewModel关闭视图

来自分类Dev

MVVM中的代码繁重的ViewModel

来自分类Dev

mvvm中的Android ViewModel管理

Related 相关文章

热门标签

归档