$save 给了我 TypeError: undefined is not a function when save model that is a list in angular
Posted
技术标签:
【中文标题】$save 给了我 TypeError: undefined is not a function when save model that is a list in angular【英文标题】:$save gives me TypeError: undefined is not a function when saving model that is a list in angular 【发布时间】:2014-11-21 21:29:18 【问题描述】:我正在使用当前版本的 asp.net、mvc、rest api 和 angular.js。我用一个列表填充我的页面然后在 $save 它给我错误 TypeError: undefined is not a function
$scope.scacTaskPLDetails = ;
$scope.onGetTaskList = function ()
var scacTaskRes = $resource("api/ScacTaskPLDetails");
scacTaskRes.query( taskID: scacTaskID , function (scacTaskPL)
$scope.scacTaskPLDetails = scacTaskPL;
);
/************************ Save Task **************************/
$scope.onSaveScacTask = function ()
if (!$scope.isEditing)
$scope.$broadcast('show-errors-event');
if ($scope.TaskForm.$invalid) return;
$scope.$broadcast('show-errors-event');
if ($scope.TaskForm.$invalid) return;
$scope.scacTaskPLDetails.$save(function (results)
if (results.successful)
Notifications.success(results.serverMessage);
$scope.onReloadPage();
else
Notifications.error(results.serverMessage);
);
我希望这是足够的信息。到目前为止,我没有遇到任何问题,唯一不同的是我保存的是一个列表而不是单个对象。在调试中,我可以看到填充视图模型 scacTaskPLDetails 的对象列表。
【问题讨论】:
$scope.scacTaskPLDetails
是一个项目数组。如果您在开发工具中检查它们,您会发现它是资源实例的集合,每个实例都有 $save 方法
谢谢,我可以在逐步执行 save 方法时查看实例,它包含我的实例。这就是为什么当我收到错误 Undefined: is not a function 时我感到困惑的原因。
【参考方案1】:
您应该使用您的资源向您的 endopint 发送操作,而不是您从资源中获得的响应
试试类似的东西
var scacTaskRes = $resource("api/ScacTaskPLDetails");
$scope.scacTaskRes.$save(function (results)
if (results.successful)
Notifications.success(results.serverMessage);
$scope.onReloadPage();
else
Notifications.error(results.serverMessage);
);
【讨论】:
我会在星期一试试这个,不能在家工作。使用资源 $save 的原因是因为我有收藏吗?我问的原因是因为我使用的模式在这个项目中一直有效,但我一直只保存单个视图模型对象而不是集合。 很有趣,我从未见过这种方法,尝试用资源来做,让我知道,祝你好运 尝试了几种方法,仍然 TypeError: undefined is not a function。我们一直在使用资源来配置对 api 的调用,然后将结果推送到我们的本地视图模型中。使用单个实例它可以正常工作,但使用集合......好吧没有骰子。 你试过这样的***.com/questions/20150544/…【参考方案2】:感谢您的提示。我终于用 isArray: true 来保存我的收藏了
app.factory("SaveArrayOfTaskPLObjects", ['$resource', function ($resource)
return $resource(
"api/ScacTaskPLDetails",
,
save:
method: 'POST',
isArray: true
);
]);
【讨论】:
是的,这就是我向您发送有关该主题的链接的原因,我很高兴它成功了,干杯!以上是关于$save 给了我 TypeError: undefined is not a function when save model that is a list in angular的主要内容,如果未能解决你的问题,请参考以下文章
当我“ng serve”时,Angular CLI 给了我“TypeError: callbacks[i] is not a function”
android 当我转到 API>19 时,我的 Java 接口给了我“TypeError: Android.mthod is not a function
NodeJS Mongoose record.save TypeError
MetaMask 不注入 window.ethereum: Uncaught (in promise) TypeError: Cannot read property 'request' of und
Magnific Popup: application-3f3c3e8….js:15011Uncaught TypeError: Cannot read property 'open' of unde