Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js ObservableArray更改时,敲除下拉列表值不更改_Knockout.js - Fatal编程技术网

Knockout.js ObservableArray更改时,敲除下拉列表值不更改

Knockout.js ObservableArray更改时,敲除下拉列表值不更改,knockout.js,Knockout.js,我有一个绑定到可观察数组的元素,但是当可观察数组中的值改变时,下拉列表不会改变。我做错了什么?我希望能够选择一个可观察的对象,更改其中一个值,并让下拉列表反映更改。在JSFIDLE中,只需在下拉列表中选择一个值,更改文本,然后单击更新 Javascript: var ViewModel = function () { self.programs = ko.observableArray([ {programId: 1, programDescription: 'One'

我有一个绑定到可观察数组的元素,但是当可观察数组中的值改变时,下拉列表不会改变。我做错了什么?我希望能够选择一个可观察的对象,更改其中一个值,并让下拉列表反映更改。在JSFIDLE中,只需在下拉列表中选择一个值,更改文本,然后单击更新

Javascript:

var ViewModel = function () {
    self.programs = ko.observableArray([
        {programId: 1, programDescription: 'One'},
        {programId: 2, programDescription: 'Two'},
        {programId: 3, programDescription: 'Three'}
    ]);
    self.program = ko.observable();

    self.saveProgram = function () {

        for (i = 0; i < self.programs().length - 1 ; i++) {
            if (self.programs()[i].programId == self.program().programId) {
                self.programs()[i].programDescription =
                    self.program().programDescription;
                alert(self.programs()[i].programDescription);
            }
        } 

    };

};

ko.applyBindings(new ViewModel());
var ViewModel=函数(){
self.programs=ko.array([
{programId:1,programDescription:'One'},
{programId:2,programDescription:'Two'},
{programId:3,programDescription:'Three'}
]);
self.program=ko.observable();
self.saveProgram=函数(){
对于(i=0;i
html:


更新程序说明:
更新

提前感谢

程序说明
需要可观察,以便在更改值时更新视图

self.programs = ko.observableArray([
    {programId: 1, programDescription: ko.observable('One')},
    {programId: 2, programDescription: ko.observable('Two')},
    {programId: 3, programDescription: ko.observable('Three')}
]);

如果您只是使字段可见,您将直接更改该字段(它将在选择中更新),这将允许您取消
保存
功能和
更新
按钮

然后提出了您是否希望能够
取消
编辑的问题,我建议您进行咨询

var项=函数(args){
返回{
programId:args.programId,
programDescription:ko.可观察(args.programDescription)
}
}
var ViewModel=函数(){
var self=这个;
self.programs=ko.array([
新项({programId:1,programDescription:'One'}),
新项({programId:2,programDescription:'Two'}),
新项目({programId:3,programDescription:'Three'})];
self.program=ko.observable();
self.editContainer=ko.observable();
self.program.subscribe(函数(nv){
self.editContainer(ko.toJS(内华达州))
})
self.cancel=函数(){
self.editContainer(null);
self.program(空)
}
self.update=函数(){
self.program().programDescription(self.editContainer().programDescription)
self.program(空)
};
};
应用绑定(新的ViewModel());

编辑程序描述:

更新 取消
self.programs = ko.observableArray([
    {programId: 1, programDescription: ko.observable('One')},
    {programId: 2, programDescription: ko.observable('Two')},
    {programId: 3, programDescription: ko.observable('Three')}
]);