【问题标题】:Angularjs How to update partial templateAngularjs如何更新部分模板
【发布时间】:2015-12-25 19:14:03
【问题描述】:

我想知道当我改变状态时如何使控制器功能工作。 这是我的 Angular 应用程序的主要模板:

<div>
    <div ng-include="'/navigation.html'"></div>
    <div>
        <!-- Page wrapper -->
        <div ng-include="'/topnavbar.html'"></div>
        <!-- Main view  -->
        <div ui-view></div>
        <!-- Footer -->
        <div ng-include="'/footer.html'"></div>
    </div>
</div>

在导航面板中我有 ng-repeat:

<ul ng-controller="NavigationCtrl" class="nav nav-second-level">
    <li ng-repeat="user in users" ui-sref-active="active">
       <a ui-sref="account">{{user.name}}</a>
    </li>
</ul>

因此,每当我更改状态时,我都想更新这个范围 var users。 我认为这是众所周知的问题,但我是 Angular 的新手,所以请帮助我。

【问题讨论】:

    标签: angularjs service controller


    【解决方案1】:

    嗯,我在这里看到了两种方法:

    1) 监听状态事件,并做回调更新用户数据。文档在这里:https://github.com/angular-ui/ui-router/wiki#state-change-events

    2)我假设用户数组来自服务,例如:

    ...
    $http.get('/users', function(data){
      return data;
    });
    ...
    

    因此,您可以在服务中本地存储一个数组(这是单例),并从任何地方更新它,这样您就可以在“NavigationCtrl”中获得指向数组的链接,并且数据将是那里也更新了。

    我的意思:

    function UserService($http) {
      var users = []; //inital array
      var updateUsers = function() {
         //get to update users here
      };
      var getUsers = fucntion() {
        return users;
      }
    
      return {
        updateUsers : updateUsers, //this method will be called when you need to update user list
        getUsers : getUsers //this method will be called in NavigationCtrl
      }
    }
    

    更新:

    这就是我在 pt.2 中的意思http://plnkr.co/edit/U2XwXNEqAxRrEa0VpYAu?p=preview

    【讨论】:

    • 谢谢!我更喜欢第二种方式,其实我也是这样做的,但问题来了,如果我在服务中更新数据,那我如何调用 NavigationCtrl 的 getUsers 函数并更新 Navigation 模板数据?
    • 重点是您不需要这样做,因为您在 getUsers 方法中通过“引用”传递了一个数组。但要使其按预期工作,您不应在“updateUsers”方法中重写用户数组,而是更新其内部。这里是一个例子:plnkr.co/edit/U2XwXNEqAxRrEa0VpYAu?p=preview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2015-12-01
    相关资源
    最近更新 更多