Angularjs 具有范围参数的资源
Angularjs resource with scope parameter
我的问题如下:我尝试使用以下参数调用资源,但出现以下错误:
[$resource:badcfg]
我在过去 3 小时内尝试修复此问题,但似乎无法解决问题。所以,如果我这样称呼它:
$scope.komintent = Fakturi.komintenti.get({ id: 1 });
它工作正常,一切都很好,但是因为我在那里需要动态 ID,所以我试图用
调用它
$scope.komintent = Fakturi.komintenti.get({ id: $scope.faktura.KomintentID });
在这一行之上我有这个(两行在一起):
$scope.faktura = Fakturi.fakturi.get({ id: $routeParams.id });
$scope.komintent = Fakturi.komintenti.get({ id: $scope.faktura.KomintentID });
我尝试了所有可能的解决方案,但无法实现。
我有另一个类似的例子,一切正常:我可以把两个参数都写成 $scope.x.y
Fakturi.fakturaKomintent.update({ Fid: $scope.faktura.DokumentID, id: $scope.komintent.KomintentID });
我改成isArray: false,还是不行。
这是我的网络 api 代码:http://prntscr.com/7k6wwt
我改了有没有[Route]
,还是没有。
当我这样尝试时:
$scope.kom = function () { Fakturi.komintenti.get({ id: $scope.faktura.KomintentID }, function success(data) { $scope.komintent = data }); }
然后我分配
input ng-click="kom()"/>
它工作正常,但我希望它在页面加载时初始化
使用 $routeParams.id 而不是 $scope.faktura.KomintentID 它可以工作,但它不是我需要的 id
资源工厂截图:http://prntscr.com/7k7bs2
*还有一件很奇怪的事情:当我把这条线放在 watchGroup 中时它工作得很好,但是当我输入一些东西时页面闪烁,因为它一直在刷新,但它工作正常并且不会抛出错误
如果这是一个 AJAX 调用,那么变量初始化应该进入回调方法:
Fakturi.fakturi.get({ id: $routeParams.id }, function (data) { $scope.faktura = data; });
Fakturi.komintenti.get({ id: $scope.faktura.KomintentID }, function (data) { $scope.komintent = data; });
根据此link,如果您想立即获得响应,请尝试为返回的对象调用 query() 方法
$scope.faktura = Fakturi.fakturi.get({ id: $routeParams.id }).query();
答案是这样的:
我必须将第二个 ajax 调用用作第一个 ajax 调用的成功函数中的函数:
Fakturi.fakturi.get({ id: $routeParams.id }, function success(data) { $scope.faktura = data, $scope.komintent = Fakturi.komintenti.get({ id: data.KomintentID }) }, function error(data) { alert("error") });
我的问题如下:我尝试使用以下参数调用资源,但出现以下错误:
[$resource:badcfg]
我在过去 3 小时内尝试修复此问题,但似乎无法解决问题。所以,如果我这样称呼它:
$scope.komintent = Fakturi.komintenti.get({ id: 1 });
它工作正常,一切都很好,但是因为我在那里需要动态 ID,所以我试图用
调用它$scope.komintent = Fakturi.komintenti.get({ id: $scope.faktura.KomintentID });
在这一行之上我有这个(两行在一起):
$scope.faktura = Fakturi.fakturi.get({ id: $routeParams.id });
$scope.komintent = Fakturi.komintenti.get({ id: $scope.faktura.KomintentID });
我尝试了所有可能的解决方案,但无法实现。
我有另一个类似的例子,一切正常:我可以把两个参数都写成 $scope.x.y
Fakturi.fakturaKomintent.update({ Fid: $scope.faktura.DokumentID, id: $scope.komintent.KomintentID });
我改成isArray: false,还是不行。 这是我的网络 api 代码:http://prntscr.com/7k6wwt
我改了有没有[Route]
,还是没有。
当我这样尝试时:
$scope.kom = function () { Fakturi.komintenti.get({ id: $scope.faktura.KomintentID }, function success(data) { $scope.komintent = data }); }
然后我分配
input ng-click="kom()"/>
它工作正常,但我希望它在页面加载时初始化
使用 $routeParams.id 而不是 $scope.faktura.KomintentID 它可以工作,但它不是我需要的 id
资源工厂截图:http://prntscr.com/7k7bs2
*还有一件很奇怪的事情:当我把这条线放在 watchGroup 中时它工作得很好,但是当我输入一些东西时页面闪烁,因为它一直在刷新,但它工作正常并且不会抛出错误
如果这是一个 AJAX 调用,那么变量初始化应该进入回调方法:
Fakturi.fakturi.get({ id: $routeParams.id }, function (data) { $scope.faktura = data; });
Fakturi.komintenti.get({ id: $scope.faktura.KomintentID }, function (data) { $scope.komintent = data; });
根据此link,如果您想立即获得响应,请尝试为返回的对象调用 query() 方法
$scope.faktura = Fakturi.fakturi.get({ id: $routeParams.id }).query();
答案是这样的:
我必须将第二个 ajax 调用用作第一个 ajax 调用的成功函数中的函数:
Fakturi.fakturi.get({ id: $routeParams.id }, function success(data) { $scope.faktura = data, $scope.komintent = Fakturi.komintenti.get({ id: data.KomintentID }) }, function error(data) { alert("error") });