Passer une valeur de champ d'entrée dans l'angularjs $ Resource indéfinie et une erreur affiche un fournisseur de portée inconnu

StackOverflow https://stackoverflow.com//questions/25083305

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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top