当我点击类别列表时,我需要获得产品

时间:2016-04-27 19:44:08

标签: javascript jquery angularjs angular-ui-router

我在这个应用程序中使用Intelxdk。这是一个移动应用程序。

我的类别列表将显示,在点击之后,我必须重定向产品页面,当我点击类别时,我可能会收到这样的错误。 “无法找到变量:$ state”。

CategoryController.js

app.controller('CategoryController', ['$scope','getServices','JSONDataService', function($scope,getServices,JSONDataService) {

    var url = 'http://look4what.biz/mobile/shop-category.php';

    $scope.getId = function(termid){ 
        JSONDataService.addTansferData(termid);
        $state.go('/:id');
    }

    getServices.sendRequest(url)
        .success(function(data, status, headers, config) {
            $scope.userslists = data;

         }).error(function(data, status, headers, config) {

         });

    }]);

app.js

var app = angular.module('LookApp', ['ionic','ngCordova','ngRoute','paymentCtrls']);  

    app.config(function($stateProvider, $urlRouterProvider,$routeProvider) {
        $routeProvider 
            .when('/', {
                 controller: 'CategoryController',
                 templateUrl: 'views/category.html'
             })
             .when('/:id', {
                 controller: 'ProductController',
                 templateUrl: 'views/users.html'
             })
             .when('/login/:friendId', {
                  controller: 'LoginController',
                  templateUrl: 'views/login.html'
             })
             .otherwise({
                 redirectTo: '/'
             });
         });

ProductController.js

app.controller('ProductController', ['$scope', '$routeParams', 'category','JSONDataService','getServices', function($scope, $routeParams, category,JSONDataService,getServices) {

    $scope.newData = JSONDataService.getTansferData();

    term_id="+$scope.newData;

    var url = "http://look4what.biz/mobile/id-get-detail.php?term_id="+termid;

    getServices.sendRequest(url)
        .success(function(data, status, headers, config) {
            $scope.userslists = data;

         })
        .error(function(data, status, headers, config) {

         });

    }]);

2 个答案:

答案 0 :(得分:0)

如果你想使用 $ state -Service,你需要先注入它:

app.controller('CategoryController', ['$scope','$state','getServices','JSONDataService', function($scope, $state, getServices, JSONDataService) {

    var url = 'http://look4what.biz/mobile/shop-category.php';

    $scope.getId = function(termid){ 
        JSONDataService.addTansferData(termid);
        $state.go('/', { id : termid});
    }
    ...
}

答案 1 :(得分:0)

这是关于将$ state注入控制器服务的一个小例子:

var app = angular.module('app', ['ui.router']);

app.controller('ctrl', function ($scope, $state) {
  $scope.changeState = function () {
    $state.go('contact.detail');
  };
});

详细说明:

http://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$状态

state provider and route provider in angularJS

使用$ stateProvider:

的代码
app.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('home', {
             url:'/'
             controller: 'CategoryController',
             templateUrl: 'views/category.html'
         })
         .state('id', {
              url:'/:id'
             controller: 'ProductController',
             templateUrl: 'views/users.html'
         })
         .state('login.friendId', {
              url:'/login/:friendId'
              controller: 'LoginController',
              templateUrl: 'views/login.html'
         })

     });