Mvvm 在同一页面中多次使用相同对象进行剔除绑定
视图模型:Mvvm 在同一页面中多次使用相同对象进行剔除绑定,mvvm,knockout.js,durandal,Mvvm,Knockout.js,Durandal,视图模型: var address = new function { var self = this; self.add1 = ko.observable(); self.add2 = ko.observable(); self.city = ko.observable(); self.state = ko.observable(); self.postal = ko.observable(); }, person = new funcion {
var address = new function {
var self = this;
self.add1 = ko.observable();
self.add2 = ko.observable();
self.city = ko.observable();
self.state = ko.observable();
self.postal = ko.observable();
},
person = new funcion {
var self = this;
self.firstName = ko.observable();
self.lastName = ko.observable();
self.address = ko.observable(address);
},
company = new function {
var self = this;
self.salesPerson = ko.observable(person);
self.shippingAddress = ko.observable(address);
self.billingAddress = ko.observable(address);
};
视图:
送货地址
地址1:
地址2:
城市:
声明:
邮政:
帐单地址
地址1:
地址2:
城市:
声明:
邮政:
问题:
在我看来,如果我在一个地方改变地址,它就会在任何地方改变。我需要使用observable,因为我还在同一页中显示这些细节
有什么帮助吗?这没有任何意义-绑定有两种方式,原因是,为什么要绑定到属性而不共享它?如果你想让每个人都有不同的信息,只需使用不同的可观察对象来绑定到
function address () {
var self = this;
self.add1 = ko.observable();
self.add2 = ko.observable();
self.city = ko.observable();
self.state = ko.observable();
self.postal = ko.observable();
},
company = new function {
var self = this;
self.salesPerson = ko.observable(person);
self.shippingAddress = ko.observable(new address());
self.billingAddress = ko.observable(new address());
};
在这种情况下,我使用的是匿名函数,而不是构造函数。构造函数将只计算一次,并绑定到同一个对象。匿名函数将分别初始化两次。您能否至少在没有所有输入错误的情况下发布代码?也许创造一个
function address () {
var self = this;
self.add1 = ko.observable();
self.add2 = ko.observable();
self.city = ko.observable();
self.state = ko.observable();
self.postal = ko.observable();
},
company = new function {
var self = this;
self.salesPerson = ko.observable(person);
self.shippingAddress = ko.observable(new address());
self.billingAddress = ko.observable(new address());
};