1

我的基类中的 observables 有问题。看看这个小提琴看看问题。

我将解释我想要做什么。

我有一个我继承的视图模型的基类。这个基类包含可观察的属性。

我创建了继承类的多个实例并将值分配给可观察对象,然后为所有实例注册的值是最后一次分配的值。

以下代码解释了我的意思。

var vm = function () {
    var test = ko.observable();
    return {
        test: test
    }
};

var subvm = function () {

};

subvm.prototype = new vm();
subvm.prototype.constructor = subvm;
subvm.prototype.parent = vm.prototype;    

var testvm1 = new subvm();
var testvm2 = new subvm();


ko.applyBindings(testvm1, $('#div1').get(0));
ko.applyBindings(testvm2, $('#div2').get(0));

testvm1.test('Value for object 1');
testvm2.test('Value for object 2');

​ 创建的视图模型绑定到以下 html :

<div id="div1">
    <span data-bind="text: test">test1</span>
</div>
<div id="div2">
    <span data-bind="text: test">test2</span>
</div>

​</p>

我做错了什么是淘汰赛不支持吗?

我会为此提供任何帮助。

4

1 回答 1

0

你的继承模型是错误的。的两个实例subvm共享相同的实例test

除非您确保每次实例化子类对象时实际调用超类构造函数,否则原型继承不能生成在父“类”中看到的词法范围变量的唯一实例。

于 2012-11-01T14:05:02.143 回答