如何在每次迭代for循环后将数据添加到Ionic中的app视图?

时间:2016-10-22 04:34:38

标签: javascript cordova dictionary ionic-framework

我正在创建一个应用程序,用于搜索字典中的某些单词,如果单词存在于字典中,则定义以及其他一些数据将输出到应用程序视图。我的问题是,只要字典中存在多个单词,应用程序就会输出找到的最后一个单词。

以下是执行线性搜索的代码。 (我知道这可能会使用二进制搜索进行优化,但现在它符合我的目的:

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>

是否有某种方法可以将每个单词输出到字典中的视图?

2 个答案:

答案 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语句中存在匹配。