我正在创建一个应用程序,用于搜索字典中的某些单词,如果单词存在于字典中,则定义以及其他一些数据将输出到应用程序视图。我的问题是,只要字典中存在多个单词,应用程序就会输出找到的最后一个单词。
以下是执行线性搜索的代码。 (我知道这可能会使用二进制搜索进行优化,但现在它符合我的目的:
for (var i=0; i < result.length; i++) {
for(var k=0; k <my_dictionary.length; k++){
if(result[i]== my_dictionary[k].word) {
me.word = my_dictionary[k].word;
me.definition = my_dictionary[k].definition;
me.usage = my_dictionary[k].usage;
console.log(me.word);
}
} //looping over words in dictionary
}
以下是模板文件中呈现这些变量的代码:
<h3 class="text-center" ng-show="home_ctrl.word"><u>Word:</u>{{home_ctrl.word}}</h3>
<h3 class="text-center" ng-show="home_ctrl.definition"><u>Explanation:</u>{{home_ctrl.definition}}</h3>
<h3 class="text-center" ng-show="home_ctrl.usage"><u>Usage:</u>{{home_ctrl.usage}}</h3>
是否有某种方法可以将每个单词输出到字典中的视图?
答案 0 :(得分:0)
您可以创建empty array
并将meObject
的对象结果推送到数组中。
最后,您可以使用ng-repeat
在html中循环数组。
var meArray = [];
for (var i=0; i < result.length; i++) {
for(var k=0; k <my_dictionary.length; k++){
if(result[i]== my_dictionary[k].word) {
var meObject = {
word: my_dictionary[k].word;
definition: my_dictionary[k].definition;
usage: my_dictionary[k].usage;
}
me.push(meObject);
}
} //looping over words in dictionary
}
$scope.home_ctrl_array = meArray;
<div ng-repeat="home_ctrl in home_ctrl_array">
<h3 class="text-center" ng-show="home_ctrl.word"><u>Word:</u>{{home_ctrl.word}}</h3>
<h3 class="text-center" ng-show="home_ctrl.definition"><u>Explanation:</u>{{home_ctrl.definition}}</h3>
<h3 class="text-center" ng-show="home_ctrl.usage"><u>Usage:</u>{{home_ctrl.usage}}</h3>
</div>
答案 1 :(得分:0)
如果你知道jquery选择,你可以选择你希望它显示的html元素,然后执行.html()或.text()。这将在if语句中存在匹配。