如何动态更改绑定模型属性

时间:2013-03-18 06:33:51

标签: knockout.js

有一个字符串数组和一个输入元素。我想根据条件编辑任何一个输入元素的数组成员。

如何实现这样的目标:

mymodel.setActiveArrayMember(1)
// now input is bound to an array member 1

mymodel.setActiveArrayMember(5)
// now input is bound to an array member 5

etc.

1 个答案:

答案 0 :(得分:1)

您可以将活动成员设置为计算的observable:

var activeArrayMember = ko.computed(function()
{
    read: function()
    {
        return array()[activeIndex()];
    }
    write: function (value)
    {
        array()[activeIndex()] = value;
        array.valueHasMutated();
    }
});

这就是你的数组是一个可观察的数组。如果不是,则丢失()。然后对活动成员的索引有一个observable,并在你想要更改成员时设置:

activeIndex(5);

将您的html绑定到activeArrayMember,它应该都可以正常工作。