2016-11-10 106 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) –

相关问题