【问题标题】:How to collapse an element after save is success (Angular+ui.bootstrap)保存成功后如何折叠元素(Angular+ui.bootstrap)
【发布时间】:2015-12-30 07:09:30
【问题描述】:

我是 Angular 的新手,我想在保存成功后折叠一个内部有保存按钮的元素。这是我的 HTML 代码,

<ul>
    <li ng-repeat="member in members">
       <select ng-model="member.role" ng-options="o as o for o in o" ng-change="isCollapse= false"></select>
       <div collapse="isCollapse">
           <button ng-click="saveMember(member)">Save</button>
           <button ng-click="isCollapse=true">Cancel</button>
       </div>
    </li>
</ul>

这是我的控制器,

myApp.controller('AccountController', function($scope, AccountService){
    $scope.isCollapse= true;
    $scope.saveMember = function(obj){
        AccountService.saveAccount(obj).success(function(data){
           if(data.status === 'success'){
             //I tried   $scope.isCollapse = true     but it didn't work.
           }
        });
    };
}

我可以通过使用简单地做到这一点

<button ng-click="saveMember(member);isCollapse=true">Save</button>

但它会在不检查保存的情况下折叠。

感谢您的帮助:)

【问题讨论】:

  • 嗨@Hikaru,你的 div 中的 collapse 属性是什么?这是角度指令吗?
  • @AbhilashPA 它是angular-ui.github.io/bootstrap的指令
  • 我能想到两件事,第一,你确定你的if语句被触发了吗?其次,如果是,也许你必须使用 $scope.$apply() 来更新。我自己也是初学者,这只是想法

标签: angularjs angular-ui-bootstrap collapse


【解决方案1】:

由于您使用的是成功回调,我看不到再次检查状态的理由。我相信if 语句中的代码不会触发,所以isCollapse 变量不会改变值。

我会尝试的是

    AccountService.saveAccount(obj).success(function(data){
       $scope.isCollapse = true;
    });

【讨论】:

    【解决方案2】:

    我找到了解决办法。

     <div collapse="isCollapse || saveSuccess==member.id"> <!--I filled || saveSuccess==member.id here-->
    

    在控制器中,

    AccountService.saveAccount(obj).success(function(data){
       $scope.saveSuccess = obj.id;
    });
    

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 2020-02-22
      • 2020-09-15
      • 2015-10-18
      • 2015-02-09
      • 2022-01-03
      • 2012-12-07
      相关资源
      最近更新 更多