Я использую угловое 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
}
}
})