2016-04-16 12 views
0

AngularとNode.jsを使用するui-routerを別のサーバーへのAPI呼び出しのUIサーバーとして使用しています。今、私のブラウザURL(ドロップダウン選択に基づく動的)はサーバーにマップされません。URLをnode.jsルートにマップする方法

たとえば、ノードにユーザー入力を送信すると、ブラウザのURLは "/ home?color = Red & & size = Large"です。そのURLをコピーして別のブラウザウィンドウに貼り付けると、色とサイズのドロップダウンが既に赤と大に選択されていて、表示された選択に基づいてAPI呼び出しからの結果が得られます。どうすればこれを達成できますか?

マイAngularJSコントローラコード:角度で

app.factory('server', ['$http', function($http){ 
    return { 
     getResults : function(color, size) { 
      var req = {}; 
      req.color = color; 
      req.size = size; 

      return $http({ 
       method: 'GET', 
       url: 'results', 
       params : req 
      }); 
     } 
    } 
}]); 

UI-ルータ:上記の機能のための

$scope.getResults = function() { 

    $location.search('color', $scope.myColor); 
    $location.search('size', $scope.mySize); 

    server.getResults($scope.myColor, $scope.mySize) 
    .success(function(data) { 
     results = data; 
    }); 
}; 

AngularJSサービスのNode.jsで

$stateProvider.state('home', { 
    url: '/home', 
    templateUrl: '/home.html', 
    controller: 'MainCtrl', 
    reloadOnSearch: false 
}) 

、私が持っています私のルートは次のようになります:

あなたのコードで

答えて

0

あなたは、クエリパラメータを書いていますが、それらを読んで、このしようとする必要があります。おかげsergiy.draunov @

$scope.getResults = function() { 

    $scope.myColor = $location.search().color; 
    $scope.mySize = $location.search().size; 

    server.getResults($scope.myColor, $scope.mySize) 
    .success(function(data) { 
    results = data; 
    }); 
}; 
+0

をそれはまだバインディングではありません。これを実行した後でもドロップダウンはすべて空白に設定されています –

+0

これもまた結果が消えます –

関連する問題