保存成功后如何折叠元素(Angular + ui.bootstrap)

时间:2015-10-02 05:19:27

标签: angularjs angular-ui-bootstrap collapse

我是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>

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

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

由于您正在使用成功回调,因此我没有看到再次检查状态的原因。我相信if语句中的代码不会触发,因此isCollapse变量不会更改值。

我会尝试的是

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

答案 1 :(得分:0)

我找到了解决方案。

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

并在控制器中,

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

谢谢大家。