2016-11-10 95 views
0

我被困在這個問題中,閱讀了很多答案,博客和文章後,我無法弄清楚,我的代碼出了什麼問題。

這是插入功能

一個模式

控制器:

(function() { 
    'use strict'; 
    angular 
     .module('nameSearch') 
     .controller('ModalPPNameSearchController', ModalPPNameSearchController); 

    ModalPPNameSearchController.$inject = ['$modalInstance','mdOptions','$window','nameSearchService','pendingPrior','nsCommonService']; 

    function ModalPPNameSearchController($modalInstance, mdOptions,$window,nameSearchService,pendingPrior,nsCommonService) { 
     var vm = this;   

     debugger; 
     vm.pendingPriorReason = []; 
     vm.pendingPriorReasons = []; 
     loadPendingPriorReasons(); 

     if (!angular.isDefined(pendingPrior)) { 
      pendingPrior = pendingPriorEmpty; 
     } 
     vm.pendingPrior = pendingPrior; 
     vm.title = "Add New";  

     if (mdOptions.action == 'edit') { 
      vm.title = "Edit: " + vm.pendingPrior.code; 
     } 

     function pendingPriorEmpty(){ 
      return { 
      leadId: '', 
      firstName: '', 
      lastName: '', 
      state: '' 
      }; 
     } 
     function loadPendingPriorReasons() {      
       var tmp = nsCommonService.get(); 
       console.log(tmp);   
       tmp.$promise.then(getGetPendingPriorReasonsCompleted, angularErrorHandler); 
     } 

     function getGetPendingPriorReasonsCompleted(pendingPriorReason) { 
      console.log(pendingPriorReason); 
      vm.pendingPriorReasons = pendingPriorReason; 
     } 
     vm.save = function() { 
      debugger;    
     } 
     vm.cancel = function() { 
      $modalInstance.dismiss('cancel'); 
     } 
    } 
})(); 

Service: 
The service is getting the data from the web api. 
(function() { 
    'use strict'; 
    angular.module('nameSearch') 
     .factory('nsCommonService', nsCommonService); 

    nsCommonService.$inject = ['$resource']; 
    function nsCommonService($resource) { 

     var commonResourcePendingPrior = $resource('/api/ppreasons/:reasonId'); 

     var service = { 
      get: get, 
      getPendingPriorStatus: GetPendingPriorStatus 
     }; 
     return service; 
/////////////////////////////////////////// 
     function get() { 
      commonResourcePendingPrior.query();      
     } 

     function GetPendingPriorStatus() { 
      return '123'; 
     } 
    } 
}()); 

我會提出了一些建議,因爲我覺得我做錯了什麼。 感謝

+0

nsCommonService.get()可能返回undefined ....這是爲什麼? –

回答

0

您需要返回從得到的承諾()

function get() { 
    return commonResourcePendingPrior.query();      
} 
+0

謝謝。但如果你詳細閱讀,你會看到 我在控制器中調用de promise,只是添加了一個tmp var來測試問題。而這正是問題所在。如果你能告訴我你的意思是什麼? –

+0

你的tmp本身是一個承諾,因此你應該可以訪問它作爲tmp.then() – Sreekanth

+0

我同意你的意見,但應該是,但我得到 angular.js:12330 TypeError:無法讀取屬性'$ promise'of未定義 在loadPendingPriorReasons(namesearch-modalnamesearch-controller.js:43)在新ModalPPNameSearchController(namesearch-modalnamesearch-controller.js:16) 在調用(angular.js:4450) 在Object.instantiate(angular.js: 4458) 在angular.js:9014 在hint.js:951 在resolveSuccess(UI的自舉-tpls.js:2730) 在processQueue(angular.js:14567) 在angular.js:14583 在範圍。$ EVAL (angular.js:15846) –

相關問題