AngularJS - 努力将值传递给工厂

时间:2016-02-19 12:53:28

标签: javascript angularjs

首先,我想说我对AngularJS很新,所以我可能会问一些奇怪的问题。

我正在尝试将字符串传递给工厂,而工厂又从我的数据库中获取结果。当我对值进行硬编码时,一切正常。但是当我试图从我的视图/控制器中传递inn值时,事情就会停止工作。

这是我的工厂:

healthServices.factory('Entry',
    function ($resource) {
        return $resource('http://localhost:60673/api/hierarchy/:id', { id: '@id'}, {
            query: { method: 'GET', isArray: true  }
        });
    });

这是我正在使用的控制器:

$scope.changeData = function (type) {
    $scope.entry = new Entry();
    $scope.id = type;
    $scope.healthData = $scope.entry.$query({ id: $scope.id });
}

这就是它在我的HTML中的样子:

<button ng-click="changeData('someValue')">

目前我一直在

  

TypeError:value.push不是函数

正如我刚才提到的那样,我可能很遥远。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这行代码的意图是什么?

     $scope.entry = new Entry();

输入是您要拨打的服务。
你应该通过依赖注入将它传递给你的控制器。 Angular为您做“新”。

    myApp.controller('myCntrl', HomeCtrl);
    HomeCtrl.$inject = ['$scope', 'Entry'];

    function HomeCtrl($scope, Entry) {
        ...
    }

答案 1 :(得分:0)

我没有看到您的$资源配置有任何问题。

var myApp = angular.module('myApp',['ngResource']);

myApp.factory('Entry', function ($resource) {
            return $resource('http://localhost:60673/api/hierarchy/:id', { id: '@id'}, {
                query: { method: 'GET', isArray: true  }
            });
        }); 


myApp.controller('myCtrl', ['$scope', 'Entry', function($scope, Entry){

    $scope.changeData = function (type) {
        $scope.entry = new Entry();
        $scope.id = type;
        $scope.healthData = $scope.entry.$query({ id: $scope.id }); 

    }
}]);

我正在控制台下面

GET http://localhost:60673/api/hierarchy/someValue

错误在于代码的其他部分,请完全发布您的控制器。