【问题标题】:Angularjs resource with scope parameter具有范围参数的 Angularjs 资源
【发布时间】:2015-09-08 15:36:52
【问题描述】:

我的问题如下:我正在尝试使用以下参数调用资源,但出现以下错误:

[$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 }); }

比我指定的

输入 ng-click="kom()"/>

它工作正常,但我希望它在页面加载时初始化

使用 $routeParams.id 而不是 $scope.faktura.KomintentID 它可以工作,但它不是我需要的 id

资源工厂截图:http://prntscr.com/7k7bs2

*还有一件很奇怪的事情:当我将行放在 watchGroup 中时,它可以正常工作,但是当我输入内容时,页面会闪烁,因为它一直在刷新,但它工作正常并且不会抛出错误

【问题讨论】:

    标签: javascript asp.net-mvc angularjs single-page-application


    【解决方案1】:

    如果这是一个 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();
    

    【讨论】:

    • 感谢您的建议:这是我为解决它所做的:Fakturi.fakturi.get({ id: $routeParams.id }, function success(data) { $scope.faktura = data, $scope.komintent = Fakturi.komintenti.get({ id: data.KomintentID }) }, 函数错误(数据){ alert("error") });
    【解决方案2】:

    答案是这样的:

    我不得不在第一个ajax调用的成功函数中使用第二个ajax调用作为函数:

    Fakturi.fakturi.get({ id: $routeParams.id }, function success(data) { $scope.faktura = data, $scope.komintent = Fakturi.komintenti.get({ id: data.KomintentID }) },函数错误(数据){警报(“错误”)});

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多