2016-03-17 12 views
0

Я использую угловое xeditable для редактирования поля и обновления его значения в базе данных, но он не работает. Он говорит, что $ update не является функцией. То же самое с $ save, которое является POST.

Не уверен, что ng-repeat или xeditable создает проблему определения области видимости, но объект, передаваемый через функцию updateBusinessGoal, проходит через значение, уже измененное, и вызов обновления должен быть всем, что необходимо.

HTML

<tr ng-repeat="goal in businessGoals.occupancyGoals | orderBy:'timeframe'"> 
    <td class="capitalize">{{goal.timeframe}}</td> 
    <td>{{goal.current_value | number:0}}%</td> 
    <td><a href="#" blur="sumbit" onaftersave='businessGoals.updateBusinessGoal(goal)' buttons="no" editable-text="goal.threshold">{{goal.threshold || 'empty'}}%</a></td> 
</tr> 

JS

businessGoals.updateBusinessGoal = function(goal){ 
    goal.$update({ 
     user_business_goal_id: goal.user_business_goal_id, 
     type: goal.type, 
     timeframe: goal.timeframe, 
     threshold: goal.threshold} 
    ); 
} 

return $resource(ENV.web_api_url + ENV.api_version + '/user/business_goals/:user_business_goal_id', {}, { 
     update: { 
      method: 'PUT', 
      params: { 
       user_business_goal_id: '@user_business_goal_id', 
       type: '@type', 
       timeframe: '@timeframe', 
       threshold: '@threshold' 
      }, 
      headers: { 
       "X-Auth-Token": $window.sessionStorage.token 
      } 
     } 
    }) 

ответ

1

Для тех, кто натыкается на этот день какой-то, потому что это плохо синтаксис. Он должен быть таким же простым, как:

businessGoals.updateBusinessGoal = function(goal){ 
     ServiceName.update(goal); 
    ); 
}