将输入字段值传递给 angularjs $resource undefined 并且错误显示未知范围提供程序 [英] Pass a input field value into angularjs $resource undefined and error shows unknown scope provider

查看:22
本文介绍了将输入字段值传递给 angularjs $resource undefined 并且错误显示未知范围提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

==============================================================================

更新 1固定代码产生新的错误

ReferenceError: inputName 未定义

就行

 inputName:inputName,

下面是新代码

<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><脚本>var app= angular.module('myApp', ['ngRoute', 'ngResource']);app.factory('Greeter', ['$resource',function($resource){返回$资源('http://123.com/processor.php',{输入名称:输入名称,回调:'JSON_CALLBACK'},{查询:{方法:'GET',isArray:true}});}]);应用程序.controller('MyCtrl', ['$scope', 'Greeter',功能($范围,迎宾){/*警报(是");*/$scope.greet = function(){//警报(greetttt");alert("在迎宾之前"+$scope.inputName);问候语.query({inputName:$scope.inputName},功能(响应){警报(响应 [0].myCodeId);$scope.output=response[0].myCodeId;});};}]);<div ng-app="myApp"><div ng-controller="MyCtrl">你的名字:<input type="text" ng-model="inputName" name="myInput" value="World"/><button ng-click="greet()">greet</button><div>在这里测试输出{{输出}}

我不知道我哪里弄错了?

谢谢

解决方案

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

我修复了其他人在评论中指出的一些问题.

从工厂中删除 $scope.在这里你得到一个通用的 $scope 对象,但不是实际的范围.你会在控制器中得到它.当您使用 query() 调用 angular 资源时,第一个参数已经是参数.但是您可以像以前一样指定常用参数.

function($resource) {返回 $resource('mocked-resource.json', {回调:'JSON_CALLBACK'}, {询问: {方法:'获取',isArray: 真}});

希望这会有所帮助.

===========================================================================

Update 1 Fixed code produce new error of

ReferenceError: inputName is not defined

on the line of

 inputName:inputName,

Below is the new 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>

I wonder where do I get it wrong?

Thanks

解决方案

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

A few problems that I fixed that others pointed out in the comment.

Remove $scope from factory. Here you are getting a generic $scope object but not the actual scope. You will get that in the controller. When you call angular resource with query() the first argument is already the param. But you can specify the common params like you did before.

function($resource) {
  return $resource('mocked-resource.json', {
    callback: 'JSON_CALLBACK'
  }, {
    query: {
      method: 'GET',
      isArray: true
    }
  });

Hope this helps.

这篇关于将输入字段值传递给 angularjs $resource undefined 并且错误显示未知范围提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆