【问题标题】:ui-router with dynamic views具有动态视图的 ui-router
【发布时间】:2014-07-09 16:40:39
【问题描述】:

我有一个显示数据的简单表格。它在顶部有列,这些列只是来自 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>

【问题讨论】:

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


    【解决方案1】:

    在 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 */
    

    使用这种方法,列名是什么或它们包含什么都无关紧要。这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多