TypeError:无法读取属性' get'未定义的Angularjs

时间:2016-01-04 20:16:52

标签: javascript angularjs dependency-injection controller angularjs-controller

我尝试一起使用Oboe.Js和Angular.Js

这是我的示例代码,它正常工作..

angular.module('myApp', ['ng-oboe'])
 .config(function (oboeProvider) {
             /* If we were so inclined, we could change the oboe defaults here - headers, etc. */
             // oboeProvider.defaults = {};
     })
 .controller('myCtrl', function ($scope, oboe) {
                $scope.test = "Yo.";
                $scope.items = [];

                oboe.get('http://localhost:4243/containers/f78257b77b21/stats')
                        .start(function (data, etc) {
                        })
                        .node('!', function (value) {   
                        })
                        .done(function (value) {
                                console.log("It works! ", value.read);
                                $scope.items.push(value);
                        })
                        .fail(function (error) {
                                console.log("Error: ", error);
                        });
        });

但是当我尝试将这些代码用于我的实际项目控制器时。我收到了这个错误。我无法弄明白为什么我会得到这个。

  

错误:TypeError:无法读取属性' get'未定义的

module.js

angular.module('RDash', ['ui.bootstrap', 'ui.router', 'ngCookies','ng-oboe'])
  .config(function (oboeProvider) {
      /* If we were so inclined, we could change the oboe defaults here - headers, etc. */
      // oboeProvider.defaults = {};
  });

统计-ctrl.js

  angular
  .module('RDash')
  .controller('StatsCtrl', ['$scope', '$stateParams', StatsCtrl]);

  function StatsCtrl($scope, $stateParams, oboe) {

    var id = $stateParams.id;

    $scope.myData = [];

    $scope.items = [];

    console.log('http://localhost:4243/containers/' + id + '/stats');

  oboe.get('http://localhost:4243/containers/' + id + '/stats')
        .start(function (data, etc) {
            console.log("Dude! We're goin'!", data, etc);
        })
        .node('!', function (value) {

        })
        .done(function (value) {
            console.log("It works! ", value.read);
        })
        .fail(function (error) {
            console.log("Error: ", error);
        });
}

1 个答案:

答案 0 :(得分:2)

在你的控制器功能中你obe工厂没有值(未定义),因为它没有注入DI数组。

angular
  .module('RDash')
  .controller('StatsCtrl', ['$scope', '$stateParams', 'obe', StatsCtrl]); //<-inject obe here
      function StatsCtrl($scope, $stateParams, oboe) {