Passer une valeur de champ d'entrée dans l'angularjs $ Resource indéfinie et une erreur affiche un fournisseur de portée inconnu
-
02-01-2020 - |
Question
===========================================================================
Mise à jour 1 Code fixe produisent une nouvelle erreur de
ReferenceError: inputName is not defined
sur la ligne de
inputName:inputName,
ci-dessous est le nouveau code
<script src="/library/angularjs/1.2.0-rc.3/angularjs.js"></script>
<script src="/library/angularjs/1.2.0-rc.3/angular-route.js"></script>
<script src="/library/angularjs/1.2.0-rc.3/angular-resource.js"></script>
<script>
var app= angular.module('myApp', ['ngRoute', 'ngResource']);
app.factory('Greeter', ['$resource',function($resource){
return $resource(
'http://123.com/processor.php',
{
inputName:inputName,
callback: 'JSON_CALLBACK'
},
{
query: {method:'GET',isArray:true}
});
}]);
app
.controller('MyCtrl', ['$scope', 'Greeter',
function($scope,Greeter){
/*alert("yes");*/
$scope.greet = function(){
//alert("greetttt");
alert("before greeeter"+$scope.inputName);
Greeter.query(
{inputName:$scope.inputName},
function(response){
alert(response[0].myCodeId);
$scope.output=response[0].myCodeId;
}
);
};
}]);
</script>
<div ng-app="myApp">
<div ng-controller="MyCtrl">
Your name:
<input type="text" ng-model="inputName" name="myInput" value="World"/>
<button ng-click="greet()">greet</button>
<div>
Test Output Here
{{output}}
</div>
</div>
</div>
Je me demande où est-ce que je me trompe mal?
merci
La solution
http://plnkr.co/edit/ckgwrson3ibmugrkdx5p?p=preview
Quelques problèmes que j'ai résumés que d'autres ont souligné dans le commentaire.
Supprimer $ la portée de l'usine.Ici, vous obtenez un objet générique $ de portée mais pas la portée réelle.Vous obtiendrez cela dans le contrôleur. Lorsque vous appelez la ressource angulaire avec requête (), le premier argument est déjà le param.Mais vous pouvez spécifier les paramètres communs tels que vous l'avez fait avant.
function($resource) {
return $resource('mocked-resource.json', {
callback: 'JSON_CALLBACK'
}, {
query: {
method: 'GET',
isArray: true
}
});
J'espère que cela aide.
Autres conseils
inputName:inputName,
Second InputName Voir la variable non existante.Je pense que cette ligne peut être supprimée du tout.Mais cela dépend de ce que vous voulez réaliser.