如何将字符串传递给工厂

时间:2015-07-27 03:02:36

标签: angularjs

如何将query传递给我的工厂?

控制器..

myApp.controller('IonAutocompleteController', function($scope, items)
{
$scope.getTestItems = function(query)
{
    items.list(function(items) {
    return items;
  });
});

厂..

myApp.factory('items', function($http){
    return {
      list: function(callback){
        $http.get('http://192.168.100.100/foosync/products/' + query).success(callback);
      }
    };
  });

2 个答案:

答案 0 :(得分:3)

首先,你的变量名称是一团糟。从长远来看,物品和物品会使您感到困惑。关于您的问题,只需添加另一个参数。

厂:

  ENV.contentSecurityPolicy = {
    'default-src': "'none'",
    'script-src': "'self' http://localhost:4200/",
    'font-src': "'self' http://localhost:4200/",
    'connect-src': "'self' http://localhost:4200/ http://localhost:3000/ http://192.168.1.173:3000/ https://api.login.yahoo.com/oauth2/request_auth",
    'img-src': "'self'",
    'style-src': "'self'",
    'media-src': "'self'"
  },


    ENV['simple-auth'] = {
      crossOriginWhitelist: ['https://api.login.yahoo.com/oauth2/request_auth'],
      authorizer: 'simple-auth-authorizer:oauth2-bearer',
      authenticationRoute: 'index',
      routeIfAlreadyAuthenticated:'userwelcome',

    },

    ENV['torii'] = {
      providers: {
        'facebook-oauth2': {
          apiKey: '799728020115355'
        },
        'google-oauth2': {
          apiKey:'299472944809-sddblocmketamp64sapk51qdrromkj0g.apps.googleusercontent.com',
          scope: 'https://www.google.com/m8/feeds/',
          redirectUri:'http://localhost:4200/userhomeinvitemembers'
        },
        'yahoo-oauth2': {
          apiKey:'dj0yJmk9UmpXWG1odlVlenRSJmQ9WVdrOVdFUkxRbVo2TkdVbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD04Zg--',

        }
      }
    };

现在你的控制器:

myApp.factory('itemsFactory', function($http){
    return {
      list: function(query, callback){
        $http.get('http://192.168.100.100/foosync/products/' + query).success(callback);
      }
    };
  });

答案 1 :(得分:0)

将其与任何其他参数一样传递给函数:

$scope.getTestItems = function(query) {
    items.list(query, function(items) {
      return items;
    });
}

修改列表函数以获取额外参数:

myApp.factory('items', function($http){
    return {
      list: function(query, callback) {
        $http.get('http://192.168.100.100/foosync/products/' + query).success(callback);
      }
    };
  });