2015-10-11 29 views
1

我之前問過這個問題的角度資源和我得到它的工作,但現在我已經開始使用restangular。

我有一個從storage/models.json獲取數據的視圖/models,並且我將它設置爲與restangular一起正常工作。

現在我想看看如/models/:modelId這樣的一個視圖,它將從storage/individual/:modelId.json獲得數據:顯然,modelId是模型的相應ID,而且我遇到了麻煩,並將其設置爲restangular。我使用角度資源工作,但restangular有許多功能,我將在未來受益,因此我決定進行切換。

有人能指出我正確的方向嗎? GitHub頁面並沒有真正討論routeParams,我無法找到我正在努力實現的示例,儘管我可能忽略了它。

ModelsCtrl.js:

'use strict'; 

angular 
    .module('swoleincApp') 
    .controller('ModelsCtrl', ['ModelsService', '$scope', ModelsCtrl]); 

function ModelsCtrl(ModelsService, $scope) { 
    ModelsService 
     .then(function(allModels) { 
      $scope.models = allModels; 
     }); 
} 

ModelsService.js:

'use strict'; 

angular 
    .module('swoleincApp') 
    .factory('ModelsService', ['Restangular', ModelsService]); 

function ModelsService(Restangular) { 
    return Restangular 
     .service('app/storage/models.json') 
     .getList(); 
} 

上面兩個例子很好地協同工作,給我所期望的結果。

我想爲第二條路線做這樣的事情,但我得到了一個404,因爲「:modelId」在url中被使用,而不是實際的模型ID。

IndividualCtrl.js:

'use strict'; 

angular 
    .module('swoleincApp') 
    .controller('IndividualCtrl', ['Individual', '$scope', IndividualCtrl]); 

function IndividualCtrl(Individual, $scope) { 
    Individual 
     .then(function(individual) { 
      $scope.model = individual; 
     }); 
} 

IndividualService.js:

'use strict'; 

angular 
    .module('swoleincApp') 
    .factory('Individual', ['Restangular', IndividualService]); 

function IndividualService(Restangular) { 
    return Restangular 
     .one('storage/individual/:modelId.json') 
     .get(); 
} 

回答

0

在服務改變

Restangular 
     .one('storage/individual/:modelId' + '.json') 
     .get(); 

Restangular 
     .one('storage/individual/', actualModelId) 
     .get(); 

那麼無論你是對模塊的配置,你需要添加後綴:

RestangularProvider.setRequestSuffix(".json"); 

(從Restangular文檔) 如果所有請求都需要發送一些後綴的工作,你可以將它設置這裏。例如,如果你需要送樣/users/123.json可以使用setRequestSuffix方法以.json添加後綴格式

+0

我試過這個,只是得到錯誤。要麼我錯誤地實施,要麼你誤會。例如,/ models視圖加載所有模型。每個模型都鏈接到/ models /:modelId,其中:modelId是導向其.json文件的字符串。我希望它能夠在單擊該鏈接時/ models /:modelId視圖中加載用於數據的storage/individual /:modelId.json文件。我使用routeParams很容易使用角度資源設置,但無法找到用於重新生成的示例。 – Lansana

0

解決我的問題

改變了這個:

Restangular 
     .one('storage/individual/:modelId' + '.json') 
     .get(); 

對此:

Restangular 
     .one('storage/individual/', $route.current.params.modelId + '.json') 
     .get(); 

並添加$路線到控制器。

相關問題