AngularJS工厂参数

mcb*_*jam 18 angularjs angularjs-factory

我正在尝试将参数发送到angularjs服务.这是我的服务代码:

angular.module('skyBiometryServices', ['ngResource'])
.factory('Facedetect', function( $resource ) {
    return $resource('skyBiometry/facedetect', {}, {
        query: {
            method : 'GET',
            params : {imageUrl: "http://cdn1-public.ladmedia.fr/var/public/storage/images/dossiers/presidentielles-2012/les-news-sur-les-presidentielles-2012/exclu-public-cauet-pour-ces-presidentielles-personne-ne-me-fait-rever-209063/2064021-1-fre-FR/Exclu-Public-Cauet-Pour-ces-presidentielles-personne-ne-me-fait-rever-!_portrait_w674.jpg"},
            isArray: false
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我有这个:

function IndexCtrl($scope,Facedetect) {
    $scope.text = Facedetect.query();
}
Run Code Online (Sandbox Code Playgroud)

如何从控制器将imageurl发送到我的服务?像这样的东西

function IndexCtrl($scope,Facedetect) {
    $scope.text = Facedetect.query('MY IMAGE URL');
}
Run Code Online (Sandbox Code Playgroud)

提前谢谢.

Mhd*_*ori 23

你可以像这样写你的工厂

app.factory('Facedetect',function($resource) {

  return {

    query: function(image_url) {
      return $resource('skyBiometry/facedetect', {}, {
             query: { method: 'GET', params: {imageUrl:image_url}, isArray: false }
      }).query();

    }
  }
});
Run Code Online (Sandbox Code Playgroud)

现在在你的控制器中你可以写

function IndexCtrl($scope, Facedetect) {
  $scope.text = Facedetect.query("YOUR/IMAGE/URL");
}
Run Code Online (Sandbox Code Playgroud)


Wot*_*els 14

如果我理解正确,你想要这样的东西:

app.factory('myFactory',function(){

  return{

    prop: '',

    setProp: function(newProp){

        this.prop = newprop;

    }
  }

});
Run Code Online (Sandbox Code Playgroud)

你应该看这个:

https://egghead.io/lessons/angularjs-providers

读到这个:

AngularJS:服务与提供商vs工厂


mcb*_*jam 0

经过更多研究,我找到了一个解决方案:

factory('Facedetect', function( $resource ) {
    return $resource('skyBiometry/facedetect', {}, {
        query: {
            method : 'GET',
            params : {imageUrl: "http://cdn1-public.ladmedia.fr/var/public/storage/images/dossiers/presidentielles-2012/les-news-sur-les-presidentielles-2012/exclu-public-cauet-pour-ces-presidentielles-personne-ne-me-fait-rever-209063/2064021-1-fre-FR/Exclu-Public-Cauet-Pour-ces-presidentielles-personne-ne-me-fait-rever-!_portrait_w674.jpg"},
            isArray: false
        }
    })
});


function IndexCtrl( $scope, $routeParams, Facedetect ) {
    $scope.imageurl = 'http://flepi.net/images/personne-tendue.jpg';
    $scope.text = $scope.text = Facedetect.get({imageUrl: $scope.imageurl});
}
Run Code Online (Sandbox Code Playgroud)

我不知道这是否是最好的方法,但它确实有效。