首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinJS.Binding.mixin和WinJS.Binding.dynamicObservableMixin有什么区别?

WinJS.Binding.mixin和WinJS.Binding.dynamicObservableMixin有什么区别?
EN

Stack Overflow用户
提问于 2013-05-27 17:40:36
回答 1查看 368关注 0票数 1

在WinJS中有三个绑定相关的混合器:

  • WinJS.Binding.observableMixin
  • WinJS.Binding.dynamicObservableMixin
  • WinJS.Binding.mixin

WinJS.Binding.mixin和WinJS.Binding.dynamicObservableMixin都定义了相同的混合方法。与其定义之间的唯一区别是,WinJS.Binding.mixin定义为WinJS.Binding命名空间上的不可枚举属性,而WinJS.Binding.dynamicObservableMixin定义为可枚举属性:

代码语言:javascript
复制
WinJS.Namespace.define("WinJS.Binding", {
    mixin: { value: dynamicObservableMixin, enumerable: false, writable: true, configurable: true },
    dynamicObservableMixin: { value: dynamicObservableMixin, enumerable: true, writable: true, configurable: true },
});

我看不出这两个混合体之间有什么真正的区别--我看不出这个属性上可枚举标志的差异有多大关系。在这两种混音中使用的是哪一种,是否存在语义或其他差异?

EN

回答 1

Stack Overflow用户

发布于 2013-05-28 03:33:42

你是正确的。mixindynamicObservableMixin之间没有真正的区别。他们是一样的。

WinJS.Binding.mixin添加了addProperty、removeProperty、get/setProperty等方法,这些方法由WinJS.Binding.expandProperties使用。expandProperties用于使现有类可观察。动态属性归因于向对象动态添加属性。

示例:

代码语言:javascript
复制
var MyListViewModel = WinJS.Class.define(
    function MyListViewModel_ctor()
    {
        this._initObservable();
    },
    {
        load: function load()
        {
            var self = this;
            return serviceclient.getMyListData().then(function (records)
            {
                self.items = new WinJS.Binding.List(records);
            });
        }
    });

WinJS.Class.mix(MyListViewModel,
    WinJS.Binding.mixin,
    WinJS.Binding.expandProperties({ items: '' }));

observableMixinmixin存在差异。observableMixin只有bindunbindnotify方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16778081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档