0

我有以下型号

var ViewModel = function(){
    var self = this;
    self.appointment = {
        title: ko.observable(),
        description: ko.observable(),
        time: ko.observable(),
        address1: ko.observable(),
        address2: ko.observable(),
        phone: ko.observable(),
        email: ko.observable(),
     }
);

然后通过json数据映射,会产生一个observableArray的约会项目,称为appointment_set

我有一个绑定到模型的约会元素的视图,但是当我appointment使用 observableArray 中的元素设置元素时,视图不会使用值更新,见下文:

viewmodel.appointment = viemodel.appointment_set()[0];

我认为这是因为appointment它本身是不可观察的,我该如何解决这个问题?

4

2 回答 2

0

根据@user2246674 的评论,我将其更改为:

var ViewModel = function(){
    var self = this;
    self.appointment = ko.observable({
        title: ko.observable(),
        description: ko.observable(),
        time: ko.observable(),
        address1: ko.observable(),
        address2: ko.observable(),
        phone: ko.observable(),
        email: ko.observable(),
     });
);

并在以后设置约会,例如:

viewmodel.appointment(viewmodel.appointment_set()[0]);
于 2013-09-10T00:35:45.573 回答
0
var ViewModel = function(){
var self = this;
self.appointment = observableArray({
    title: ko.observable(),
    description: ko.observable(),
    time: ko.observable(),
    address1: ko.observable(),
    address2: ko.observable(),
    phone: ko.observable(),
    email: ko.observable(),
 });
};

如果要使用以下行,请将其用作 observableArray:

 viewmodel.appointment(viemodel.appointment_set()[0]);

因为你不能对 observable 说 '[0]' ......只有在处理 observableArray 时才使用它。

还要确保约会也被声明为 observableArray。

self.appointment=ko.observableArray();

希望这可能对你有所帮助......我只是根据我所知道的......如果我错了,请原谅。

于 2013-09-10T02:10:33.130 回答