Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 淘汰-使用新列表更新dropdownlist_Knockout.js - Fatal编程技术网

Knockout.js 淘汰-使用新列表更新dropdownlist

Knockout.js 淘汰-使用新列表更新dropdownlist,knockout.js,Knockout.js,这是我的HTML <select id="masterLibrary" data-bind="options: libraries, value: library"></select> 我正在获取数据,但UI下拉菜单没有更新数据,这可能是因为库不是一个可观察的数组,只是一个普通的字符串数组,因此任何更新都不会反映在页面上。如果是这种情况,那么当城市发生变化时,您还需要更改加载库的方式observablearray。我使用Knockoutobservable进行了尝试,效

这是我的HTML

<select id="masterLibrary" data-bind="options: libraries, value: library"></select>

我正在获取数据,但UI下拉菜单没有更新数据,这可能是因为库不是一个可观察的数组,只是一个普通的字符串数组,因此任何更新都不会反映在页面上。如果是这种情况,那么当城市发生变化时,您还需要更改加载库的方式
observablearray

我使用Knockoutobservable进行了尝试,效果良好。谢谢
libraries: string[];
library: KnockoutObservable<string>;
this.libraries= data.libraries.map(x => x.name);
this.library = getLibraryName(data.libraryId);
this.city.subscribe(name => {
    DataService.instance.get('city/' + this.name(), (data): any => {
        this.libraries = data.libraries.map(x => x.name);
    });
});