首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KnockoutJS型号AMD模式,具有任何属性的订阅选项

KnockoutJS型号AMD模式,具有任何属性的订阅选项
EN

Stack Overflow用户
提问于 2014-05-29 01:06:59
回答 1查看 62关注 0票数 0

我是第一次接触knockoutjs,来自AngularJS世界。我正在尝试使用AMD模式来帮助我用Require.js组织我的JavaScript。

我有一个"Model.js“,我在多个视图中加载了require。

我想在模型之外设置属性,并订阅更改。

下面是my Model的示例:

代码语言:javascript
复制
    define(['knockout', 'komapping'], function (ko, komapping) {    
         var self = this;
         self.model = komapping.fromJS({});  

        init = function () {        
            $.getJSON("some api call", function (data) {                            
                komapping.fromJS(data, self.model);
            });     
        };  

        self.obsModel.someProperty.subscribe(function (newValue) {
            console.log('new property value',newValue);
        });

        init();

        ko.applyBindings(self.model);

        return self;
});
EN

回答 1

Stack Overflow用户

发布于 2014-05-29 09:39:51

如果我有多个模型需要访问的属性,我会创建另一个JS模块。例如,我可能会把它放在config.js中(我爱你,J.爸爸)。

代码语言:javascript
复制
define('config',['jquery','ko'], function ($, ko) {
    var
        prop1 = ko.observable(),
        prop2 = ko.observable();

    return {
        prop1: prop1,
        prop2: prop2
    };
});

那么在我的模型中我就会

代码语言:javascript
复制
define('myModel',['ko','config'], function (ko, config) {
    var
        somePropToBindTo = ko.observable(),

        init = function () {
            config.prop1.subscribe(function (newValue) {
                console.log('new property value',newValue);
            });
        };

    init();

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

https://stackoverflow.com/questions/23917809

复制
相关文章

相似问题

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