ノックアウトjsとbreezejsを使用すると、奇妙な方法で動作する選択コントロールがあります。これは、ドロップダウンが正常に入力される場合とそうでない場合があるためです(したがって、私の問題はプロパティオプション:サイトにあります)
レイアウト:
<select data-bind="options: sites, optionsText: 'name', value: selectedSite, optionsCaption: 'All Sites'" class="input-medium"></select>
ビューモデル:
export var sites = ko.observableArray();
function loadSites() {
return datacontext.getSites(sites, globalSettings.TreeViewObject, globalSettings.UserId, globalSettings.DeviceType);
}
datacontext は次のとおりです。
export var getSites = function (sitesObservable, treeViewObject,userId,deviceType) {
var query = EntityQuery.from("GetSites")
.withParameters({ userId: userId, businessObject: treeViewObject, deviceType: deviceType});
return manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
function querySucceeded(data) {
if (sitesObservable) {
sitesObservable(data.results);
}
log('Retrieved [Sites] from remote data source',
data, true);
}
}
loadSites メソッドの実行は、次のメソッドから取得されます。
function loadLookupsAtRootLevel() {
return Q.all([<any>loadLookup3(), <any>loadSites(), <any>loadLookup2(), <any>loadLookup3(), <any> loadLookup4()]);
}
だから私はすべての私のルックアップを
export function activate() {
return loadLookupsAtRootLevel().then(loadRegistrations);
}
ロギングから、コレクションが正しい方法で取得されていることがわかりますが、何らかの奇妙な理由でコントロールが更新されていません。Google Chrome のコンソールにエラーは表示されません。問題をデバッグする方法がわかりません。何か案は?