【问题标题】:Dynamically load Angular UI-Bootstrap accordian from controller从控制器动态加载 Angular UI-Bootstrap 手风琴
【发布时间】:2016-07-08 21:31:54
【问题描述】:

我在控制器中使用一个数组来存储名称列表。然而,根据用户点击的公司,该列表显然会在页面加载后多次更改。

我有一个将列表加载到数组中的控制器方法。该数组被绑定为手风琴的多个<li> 项目的源。

如果这些项目在页面加载时存在,则它们会很好地显示。但是,我无法让列表反映存储在数组中的数据的任何变化。知道如何在数组数据更改时更改手风琴<li> 项目吗?

查看

  <uib-accordion close-others="oneAtATime">
    <uib-accordion-group is-open="status.open">
        <uib-accordion-heading>
            Users <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i>
        </uib-accordion-heading>
        <ul>
            <li ng-repeat="group in userList">{{group}}</li>
        </ul>
    </uib-accordion-group>
  </uib-accordion>

控制器

scope.userList = null;

var loadFirmUsersSuccess = function(data){
    scope.userList = $.map(data.data.data[0].theList, function(item){
        return item.billFirst + ' ' + item.billLast;
    });
};

【问题讨论】:

  • 您确定 loadFirmUsersSuccess() 正在正确更新 scope.userList 吗?我创建了一个运行良好的快速插件 (plnkr.co/edit/FlsChWci1m5axYXCI3Co?p=preview)。
  • 另外,loadFirmUsersSuccess() 是如何被调用的?请分享更多您的控制器代码。
  • 看来这是数据问题,谢谢。

标签: javascript angularjs angularjs-directive angular-ui-bootstrap accordion


【解决方案1】:

感谢上面的评论,我意识到我写的 return 语句不正确。下面的代码有效。

    var loadFirmUsersSuccess = function(data){
        scope.userList = $.map(data.data.data[0].theList, function(item){
            return {id: item.id, name: item.billFirst + ' ' + item.billLast};
        });
    };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多