如何使用ng-repeat删除冗余代码

泡菜人

我正在学习网络编程和AngularJS。HTML文件中有很多冗余代码,但是我不知道如何删除它们。

HTML档案:

<select id="selectSearch" ng-model="searchValue">
    <option value="7">7</option>
    <option value="6">6</option>
    <option value="5">5</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
</select>
...
<tr>
    <td></td>
    <td colspan="3">Class</td>
    <td x-ng-if="searchValue >= 1">{{ getClass(studentYear)   }}</td>
    <td x-ng-if="searchValue >= 2">{{ getClass(studentYear+1) }}</td>
    <td x-ng-if="searchValue >= 3">{{ getClass(studentYear+2) }}</td>
    <td x-ng-if="searchValue >= 4">{{ getClass(studentYear+3) }}</td>
    <td x-ng-if="searchValue >= 5">{{ getClass(studentYear+4) }}</td>
    <td x-ng-if="searchValue >= 6">{{ getClass(studentYear+5) }}</td>
    <td x-ng-if="searchValue >= 7">{{ getClass(studentYear+6) }}</td>
</tr>
<tr>
    <td></td>
    <td colspan="3">Grades</td>
    <td x-ng-if="searchValue >= 1">{{ getGrades(studentYear)   }}</td>
    <td x-ng-if="searchValue >= 2">{{ getGrades(studentYear+1) }}</td>
    <td x-ng-if="searchValue >= 3">{{ getGrades(studentYear+2) }}</td>
    <td x-ng-if="searchValue >= 4">{{ getGrades(studentYear+3) }}</td>
    <td x-ng-if="searchValue >= 5">{{ getGrades(studentYear+4) }}</td>
    <td x-ng-if="searchValue >= 6">{{ getGrades(studentYear+5) }}</td>
    <td x-ng-if="searchValue >= 7">{{ getGrades(studentYear+6) }}</td>
</tr>
<tr>
    <td></td>
    <td colspan="3">Status</td>
    <td x-ng-if="searchValue >= 1">{{ getStatus(studentYear)   }}</td>
    <td x-ng-if="searchValue >= 2">{{ getStatus(studentYear+1) }}</td>
    <td x-ng-if="searchValue >= 3">{{ getStatus(studentYear+2) }}</td>
    <td x-ng-if="searchValue >= 4">{{ getStatus(studentYear+3) }}</td>
    <td x-ng-if="searchValue >= 5">{{ getStatus(studentYear+4) }}</td>
    <td x-ng-if="searchValue >= 6">{{ getStatus(studentYear+5) }}</td>
    <td x-ng-if="searchValue >= 7">{{ getStatus(studentYear+6) }}</td>
</tr>
...

我想我需要使用ng-repeat && ng-init,但是在这种情况下我不知道如何使用它们。

亨里克·皮纳尔(Henrik Peinar)

由于实际上很难理解表背后的逻辑是什么,我举了一个相当笼统的示例,说明如何使用ng-repeat和ng-select来处理某些数据。

请参见下面的代码:

<div data-ng-controller="nodeTodayCtrl">
    <label for="selectYear">Select year you want info for</label>
    <select data-ng-model="selectedYear" data-ng-options="year for year in possibleYears"></select>

    <!-- we are assuming that there are in total of 9 classes and after that they've finished school -->
    <table>
        <tr>
            <td>Name</td>
            <td>Gender</td>
            <td>Is in class on selected year</td>
        </tr>
        <tr data-ng-repeat="student in students">
            <td>{{student.name}}</td>
            <td>{{student.gender}}</td>
            <td>{{ getClass(student, selectedYear); }}</td>
        </tr>
    </table>
</div>

Javascript:

$scope.possibleYears = [];
$scope.yearRange = 10;

// populate possible years, start from 0 to include current year
for(var i = 0; i <= $scope.yearRange;i++) {
    $scope.possibleYears.push((new Date()).getFullYear() + i);
}

$scope.getClass = function(student, selectedYear) {
    var currentYear = (new Date()).getFullYear();

    // default to current year
    if(!selectedYear) {
        selectedYear = currentYear;
    }
    var classIn = student.class + (selectedYear - currentYear);

    return (classIn > 9) ? 'Finished school '+ (classIn - 9) +' year(s) ago' : classIn;    
};

// your students data
$scope.students = [{}, ...];

请参阅小提琴以获得完整代码的工作示例:

http://jsfiddle.net/hpeinar/zwnbet95/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除Lisp代码中的冗余?

来自分类Dev

如何删除Clojure代码中的冗余?

来自分类Dev

如何删除存储库中的代码冗余

来自分类Dev

如何删除Clojure代码中的冗余?

来自分类Dev

使用ng-repeat如何从dom中删除空UL

来自分类Dev

如何使用 forEach 从 ng-repeat 中删除 json 对象

来自分类Dev

如何优化这个冗余代码?

来自分类Dev

如何在ng-repeat中使用ng-if?

来自分类Dev

如何使用嵌套的ng-repeat

来自分类Dev

AngularJS-如何正确使用ng -repeat

来自分类Dev

如何使用hashmap进行ng-repeat

来自分类Dev

如何使用 ng-repeat 限制结果?

来自分类Dev

如何使用ng-class ng-click删除类?

来自分类Dev

删除方法中的冗余代码

来自分类Dev

使用ng-repeat和ng-if进行代码优化

来自分类Dev

如何在AngularJS中使用ng-repeat插入html代码?

来自分类Dev

如何衡量代码库中的冗余?

来自分类Dev

如何简化冗余代码 jQuery hover()

来自分类Dev

冗余代码,如何每行有多个参数

来自分类Dev

如何使用AngularJS从ng-repeat中的数组中删除对象?

来自分类Dev

如何删除格式化的流冗余

来自分类Dev

如何删除Sublime Text的冗余编码样式

来自分类Dev

如何从类似方法中删除冗余?

来自分类Dev

如何删除QStringList中的冗余元素

来自分类Dev

使用python删除循环中的冗余

来自分类Dev

如何使用python删除字典中的冗余值?

来自分类Dev

如何从$ http获取数组并使用ng-repeat进行查看

来自分类Dev

AngularJS:如何在ng-repeat中使用$索引

来自分类Dev

如何使用ng-repeat访问数组中的对象