我以这种标准方式在自动完成搜索栏下创建要建议的项目列表:
我想通过以下方式逐步将建议项逐个填充到ObservableArray:
page.bindingContext.set("suggestionItems", new ObservableArray([]));
for (let i = 0; i < source.length; i++){
if ( conditionMet(source[i]) ){
page.bindingContext.suggestionItems.push(
new autocompleteModule.TokenModel(source[i])
);
}
}
console.log("Items for suggestion: " + page.bindingContext.suggestionItems);
但是此方法不起作用。搜索栏下没有列出任何项目。尽管console.log()在bindingContext中显示了一个填充良好的ObservableArray:
Items for suggestion: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
因此,尽管优雅程度不高且不灵活,但我正在使用工作台。我在函数作用域中填充了一个临时数组,然后直接使用整个临时数组在bindingContext中设置了建议项。
let tempItems = [];
for (let i = 0; i < source.length; i++){
if ( conditionMet(source[i]) ){
tempItems.push(
new autocompleteModule.TokenModel(source[i])
);
}
}
page.bindingContext.set("suggestionItems", new ObservableArray(tempItems));
console.log("Items for suggestion: " + page.bindingContext.suggestionItems);
所以现在,如果我要推送项目,则需要从头开始替换整个ObservableArray ...
请注意,对于工作环境,console.log()输出是相同的。