javascript - Angular : $scope and template breaking after using a $resource

标签 javascript angularjs

我还没有构建实际的应用程序,但我正在尝试使用 Angular 处理 HTTP 请求。

这是我的小(和坏)HTML 模板:

<div class="row-fluid" ng-controller="SearchCtrl">
    <div>zip: {{zip}}</div>
    <div>id: {{appid}}</div>
    <div>key: {{appkey}}</div>
    <div>JSON: {{jsonz}}</div>
</div>

这是我的这个特定页面的 Controller :

  controller('SearchCtrl', ['$scope','$routeParams',function($scope,$routeParams){
      $scope.appid = *;
      $scope.appkey = *;
      if($routeParams.zipcode) {
        $scope.zip = $routeParams.zipcode;
        $scope.jsonz = $resource('api/:act', {act:'search',appid:$scope.appId,appKey:$scope.appkey,zipCode:$scope.zip}).query();
      }
  }])

我假设模块已正确初始化。

angular.module('myApp.controllers', ['ngResource'])

当 $resource 行未被注释时,HTML 将按字面显示,没有来自 Angular 的模板替换。注释掉,zip/id/key 被正确替换。

我知道我在处理资源方面可能做错了,但我什至不知道我应该做什么。

更新: angular-resource.js 中似乎有一些未定义的值,我将尝试调查/重新下载 angularjs。

[15:44:57.157] Error: value is undefined
ResourceFactory/extractParams/<@file:///C:/demo/app/lib/angular/angular-resource.js:344
forEach@file:///C:/demo/app/lib/angular/angular.js:137
extractParams@file:///C:/demo/app/lib/angular/angular-resource.js:343
ResourceFactory/</Resource[name]@file:///C:/demo/app/lib/angular/angular-resource.js:398
@file:///C:/demo/app/js/controllers.js:79
invoke@file:///C:/demo/app/lib/angular/angular.js:2902
instantiate@file:///C:/demo/app/lib/angular/angular.js:2914
@file:///C:/demo/app/lib/angular/angular.js:4805
update@file:///C:/demo/app/lib/angular/angular.js:14198
Scope.prototype.$broadcast@file:///C:/demo/app/lib/angular/angular.js:8307
updateRoute/<@file:///C:/demo/app/lib/angular/angular.js:7463
qFactory/defer/deferred.promise.then/wrappedCallback@file:///C:/demo/app/lib/angular/angular.js:6846
qFactory/defer/deferred.promise.then/wrappedCallback@file:///C:/demo/app/lib/angular/angular.js:6846
qFactory/ref/<.then/<@file:///C:/demo/app/lib/angular/angular.js:6883
Scope.prototype.$eval@file:///C:/demo/app/lib/angular/angular.js:8057
Scope.prototype.$digest@file:///C:/demo/app/lib/angular/angular.js:7922
Scope.prototype.$apply@file:///C:/demo/app/lib/angular/angular.js:8143
done@file:///C:/demo/app/lib/angular/angular.js:9170
completeRequest@file:///C:/demo/app/lib/angular/angular.js:9333
createHttpBackend/</xhr.onreadystatechange@file:///C:/demo/app/lib/angular/angular.js:9304

最佳答案

你必须在你的 Controller 中注入(inject) $resource:

controller('SearchCtrl', ['$scope', '$routeParams', '$resource', 
function($scope, $routeParams, $resource){ ...

关于javascript - Angular : $scope and template breaking after using a $resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051597/

相关文章:

javascript - 关于 WebGL 的一些问题

javascript - 交点观察者 rootBound 给出了不正确的值

javascript - 我的js代码出了什么问题?

javascript - AngularJS: Controller 中的函数被模板多次调用

javascript - 如何防止用户表单忽略 angularjs 中的建议

javascript - 根据其他事件更改 ng-click 的功能?

javascript - twitter-bootstrap 模式确认对话框

javascript - 滚动到设置高度的 div 内 anchor

javascript - Angular 1.5 组件宿主元素属性

angularjs - 为什么在 ng-include 中通过 onLoad 传递变量时只能在模板中访问?