我是第一次接触knockoutjs,来自AngularJS世界。我正在尝试使用AMD模式来帮助我用Require.js组织我的JavaScript。
我有一个"Model.js“,我在多个视图中加载了require。
我想在模型之外设置属性,并订阅更改。
下面是my Model的示例:
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;
});发布于 2014-05-29 09:39:51
如果我有多个模型需要访问的属性,我会创建另一个JS模块。例如,我可能会把它放在config.js中(我爱你,J.爸爸)。
define('config',['jquery','ko'], function ($, ko) {
var
prop1 = ko.observable(),
prop2 = ko.observable();
return {
prop1: prop1,
prop2: prop2
};
});那么在我的模型中我就会
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
};
});https://stackoverflow.com/questions/23917809
复制相似问题