具有动态视图的ui-router

时间:2014-07-09 16:40:39

标签: angularjs angularjs-ng-repeat angular-ui-router

我有一个显示数据的简单表格。它的顶部有列,它们只是JSON数据的键。

我收到的数据是动态的;我不知道列的名称是什么。但是,当您单击某列时,它会按升序对其进行排序,或者根据您单击的次数进行降序。

我想使用ui-router保存此状态,但是,我不知道提前列的名称,那么我如何命名视图或状态?是否有一种简单的方法可以实现这一目标?

以下是表格的生成方式:

<table>
    <tr>
        <th ng-repeat="column in columns>
        <a ng-click="$parent.predicate = '\'' + column + '\''; $parent.reverse=!reverse;">{{column}}</a>
    </tr>
    <tr ng-repeat="type in data | orderBy:predicate:reverse>
        <td ng-repeat="column in columns"><input ng-model="type[column]"></td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:0)

在Javascript中,可以使用for ... in循环来迭代属性。可以在循环内访问所述属性值。然后可以根据需要使用这些来填充模型。

例如(取自MDN):

var o = { a: 1, b: 2, c: 3 };

function show_props(obj, objName) {
    var result = "";

    for (var prop in obj) {
        result += objName + "." + prop + " = " + obj[prop] + "\n";
    }

    return result;
}

console.log(show_props(o, "o")); /* alerts (in different lines): o.a = 1 o.b = 2 o.c = 3 */

使用这种方法,列名称或它们包含的内容并不重要。这有帮助吗?