2011-07-11 3 views
3

je le contrôleur suivant qui fonctionne très bien:..

function Controller() {} 

Controller.prototype = { 
    getResult: function(project) { 
     var that = this; 

     jQuery.ajax({ 
      async: false, 
      url: "/my-service/call?project=" + project, 
      dataType: "json", 
      success: function(data) { 
       that.result = data; 
      } 
     }); 
    } 
}; 

Je voudrais utiliser AngularJS .scope bind $ pour voir si je pouvais éliminer le « var qui = ce;' pirater. Mais ce qui suit ne fonctionne pas:

function Controller() {} 

Controller.prototype = { 
    getResult: function(project) { 
     angular.scope.$bind(jQuery.ajax({ 
      async: false, 
      url: "/my-service/call?project=" + project, 
      dataType: "json", 
      success: function(data) { 
       this.result = data; 
      } 
     }))(); 
    } 
}; 

Qu'est-ce que je manque?

+0

Veuillez ne pas poser la même question plusieurs fois. Merci. – Kev

+0

@Graham L'utilisateur de cette question pose une question sur 'angular.scope' en tant que construction de programmation, pas en tant que nom de la bibliothèque. Les balises sont destinées à être utilisées pour la recherche. –

Répondre

2

Misko Hevery sur l'envoi angulaire répondu par:

Controller.prototype = { 
    getStuff: function(project) { 
     jQuery.ajax({ 
        async: false, 
        url: "/service/get-stuff", 
        dataType: "json", 
        success: angular.bind(this, function(data) { 
         this.stuff = data; 
        }) 
       }); 
    } 
}; 

Il a également suggéré d'utiliser angular.service XHR de $ au lieu de jQuery.ajax..

Questions connexes