2014-09-11 34 views
0

我正在使用angularJs,并且我的代码工作正常。我从API获取数据,通过单击单选按钮进行更新,并将新数据返回。在成功的“Put”后,它将获得新的数据并在选定的值之后显示新的“Default”。如何使用刷新的api元素更新“输入按钮”

总结:一切正常,但“默认”不在正确的选定的地方。

enter image description here

另外这里是我的代码:

<div id="container" style="width:650px"> 
    <ol ng-repeat="element in accountmsisdn"> 

     <li style=" text-align:left; float:left"> 
      <input name="defaultSender" type="radio" ng-click="updateDefault(element)" ng-checked="element.default"> 
      <span>{{element.msisdn}} </span><span ng-if="element.default"><i>Default</i></span> 
     </li> 

这里是JS

$scope.updateDefault = function(element) { 
    if (AuthService.isAuth()) { 

    Account.one().get().then(
     function(account) { 

     account.data.defaultMsisdn = element.msisdn; 
     $log.d("account: ", account.data); 

     account.data.put().then(
      function(resultOk) { 
      $log.d("Accountinfo ok: ", resultOk); 
      $scope.user = resultOk.data; 
      }, 
      function(resultError) { 
      $log.d("Accountinfo error: ", resultError); 
      ErrorService.showApiError(resultError); 
      } 
     ); 
     } 
    ); 
    } 
}; 
+0

您可以显示设置'$ scope.element.default'的值的代码部分吗? – 2014-09-11 08:10:54

+0

对不起......没有显示出所有重要的html ..元素是ng-repeat的一部分 json – Flowdo 2014-09-11 08:13:46

+0

的一部分@Flowdo:你似乎从未分配过'element.default'。 – gkalpak 2014-09-11 08:18:50

回答

1

首先,ng-repeat需求是在<li>而不是在<ol>,并删除float: left来自<li>

<div id="container" style="width:650px"> 
    <ol> 
     <li style=" text-align:left" ng-repeat="element in accountmsisdn"> 
      <input name="defaultSender" type="radio" ng-click="updateDefault(element)" ng-checked="element.default"> 
      <span>{{element.msisdn}} </span><span ng-if="element.default"><i>Default</i></span> 
     </li> 
    </ol> 
</div> 

在控制器:

$scope.updateDefault = function (element) { 
    // after getting resultOk, assuming the value of default is in resultOk 
    angular.forEach($scope.accountmsisdn, function (val, i) { 
     val.default = false; 
    }); 
    element.default = valueOfDefaultFromResultOk; // true/false 

};

+0

完美工作,非常感谢。 – Flowdo 2014-09-11 09:35:18