-1

私はここにこのビューモデルを持っています:

var myObsArr = ko.observableArray();

var object1 = {attrA : 'hello', attrB : false};
var object2 = {attrA : 'world', attrB : true};

myObsArr.push(object1, object2);

var vm = {
    myObsArr : myObsArr
}
return vm;

たとえば、次のようにして、この observableArray から任意の値を取得できますmyObsArr()[1].attrB

または何もせずに、これらの値を のように設定する方法はありますか??myObsArr[1].attrB = falseremovereplace

ありがとうございました。

4

1 に答える 1

0

これは、あなたが望むものと似ているように見える興味深いアプローチを持つ、私が見つけたフィドルです。

http://jsfiddle.net/up8rB/

var items = [{
    Id: 1,
    Text: 'First item'
}, {
    Id: 2,
    Text: 'Second item'
}];

var observableItems = [
    new ItemViewModel(1, "First item"),
    new ItemViewModel(2, "Second item")
];

function ItemViewModel(id, text){
    var self = this;
    self.Id = ko.observable(id);
    self.Text = ko.observable(text);
}

var viewModel = function (items) {
    var self = this;
    self.items = ko.observableArray(items);
    self.selectedItemId = ko.observable();
    self.item = ko.observable();
    self.selectItem = function (item) {
        for (var i = 0; i < self.items().length; i++) {
            if (self.items()[i].Id() === self.selectedItemId()) {
                self.item(self.items()[i]);
                break;
            }
        }
    };
};

ko.applyBindings(new viewModel(observableItems));
于 2013-07-26T19:59:50.737 に答える