将输入字段值传入angularjs $resource undefined,错误显示未知的作用域提供商

Pass a input field value into angularjs $resource undefined and error shows unknown scope provider

本文关键字:显示 错误 未知 提供商 作用域 undefined resource 字段 输入 值传 angularjs      更新时间:2023-09-26
 <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', ['$scope' , '$resource',function($scope,$resource){
  return $resource(
    'http://adam.shopkeeper.tekserve.com/awh/ngresource/processor.php',
    {
      myvar:$scope.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>

php文件期望返回单个数组项(即item[0]),但这不是问题所在。因为$作用域似乎不能被inputName字段识别,我将其作为模型(尽管我不确定这样做是否正确)。错误信息将显示如下:

Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- Greeter

我想知道我哪里搞错了?

http://plnkr.co/edit/CKgWrson3IbMugRKdX5p?p =

预览

我修复了一些别人在评论中指出的问题。

从工厂中删除$scope。这里你得到的是一个通用的$scope对象,而不是实际的作用域。你会在控制器中得到它。当你用query()调用angular resource时,第一个参数已经是参数了。但是您可以像以前那样指定公共参数。
function($resource) {
  return $resource('mocked-resource.json', {
    callback: 'JSON_CALLBACK'
  }, {
    query: {
      method: 'GET',
      isArray: true
    }
  });