2016-01-07 31 views
1

我已經在angularjs中編寫了回調函數。但不知何故,它不被稱爲。我的代碼如下。未在angularjs中調用的回調函數

Link功能:

link: function(scope, element, attrs) { 
      scope.getContent = function(itemId) { 
       getTocService.getArtData(itemId, function(data){ 
        var art = data; 
        alert(art); 
       }); 
      } 
element.append("<collection collection='member.tocItem'></collection>");  
       $compile(element.contents())(scope) 
      } 

服務:

app.service( 「getTocService」, 功能($ HTTP,$ Q){ 回報({

  getArtData: getArtData 
     }); 

     function getToc(bookIdvar) { 
      var request = $http({ 
       method: "post", 
       url: "http://10.132.241.41:8082/apdpoc/services/ApdBookService/getTOC", 
       params: { 
        action: "post" 
       }, 
       data: { 
        getTOCCriteria:{ 
        bookId: bookIdvar 
        } 
       } 
      }); 
      return(request.then(handleSuccess,handleError)); 
     } 

     function getArtData(itemId, cb) { 
      var request = $http({ 
       method: "post", 
       url: "http://10.132.241.41:8082/apdpoc/services/ApdBookService/getArticle", 
       params: { 
        action: "post" 
       }, 
       data: { 
        getArticleCriteria:{ 
        articleId: itemId, 
        locale: "en_US" 
        } 
       } 
      }); 
      return(request.then(handleSuccess,handleError), cb); 
     } 
     function handleSuccess(response){ 
      return (response.data); 
     } 

     function handleError(response) { 

      if (
       ! angular.isObject(response.data) || 
       ! response.data.message 
       ) { 
       return($q.reject("An unknown error occurred.")); 
      } 
      return($q.reject(response.data.message)); 
     } 

    } 

);

根據我的小kn owled on angularJs, 應執行回調方法

var art = data; alert(art);

這些行。但控制不會在那裏。有人能告訴我這裏有什麼問題嗎?

回答

1

您應該更新

return(request.then(handleSuccess,handleError), cb); 

return(request.then(cb,handleError)); 
+0

非常感謝。這是工作。你可以讓我知道我是否可以賦值給鏈接函數中的$ scope變量? – Sanjay

+1

很高興聽到這一點。是的,你可以這麼做。 – nikhil