2016-05-23 5 views
3

Ich habe erfolgreich Daten aus Rest Anruf gefüllt und danach kann ich Details dieser Daten erhalten, indem Sie ein Klick-Ereignis mit seiner ID. Ich kann Daten in der Konsole drucken, aber nicht in der Vorlage binden. Hier ist mein Code.So binden Sie Daten vom Controller zur Ansicht in eckigen mit Rest Anruf

service.js:

(function() { 
      angular.module('myApp').service('registerService', registerService,restService); 
     var baseUrl:"http://localhost:xxxxxxxxxxx" 
      function registerService($q, $http) { 
       //var category={}; 
       var deferred = $q.defer(); 
       //function to get all category 
        this.getAllCategory = function() { 

         //calling json data 
         return $http.get(baseUrl).then(function (response) { 
           category = response.data; 
           deferred.resolve(category); 
           return deferred.promise; 
          }, 
          function (error) { 
           deferred.reject(error); 
           return deferred.promise; 
          }); 
        }, 
         //function to get category by id 
        this.getSubCategory = function (id) { 
         console.log('inside subcategory'); 
         return $http.get(baseUrl + '/' + id) 
          .success(function (response) { 
           deferred.resolve(response.data); 
            return deferred.promise; 
          }, 
          function (error) { 
           deferred.reject(error); 
           return deferred.promise; 
          }); 
        }; 
      } 
     })(); 

controller.js:

(function() { 
     angular.module('shoppingPad').controller('registerCtrl', registerCtrl); 

     function registerCtrl($scope, registerService, $stateParams, $state, Page) { 

      // var categoryId = $stateParams.categoryId; 

      $scope.category = null; 
      $scope.cur_category = null; 

      //getCategory function to get all category from rest call. 

      $scope.getCategory = function() { 
       //setting title for registration 
       Page.setTitle('Registration'); 
       registerService.getAllCategory().then(function (response) { 
        $scope.category = response; 
        console.log($scope.category); 
        }) 
      }; 

      //passing id to subCategory function to get sub category by id 

      $scope.subCategory = function (id) { 
       //setting title for sub-category 
        Page.setTitle('Sub-Register'); 
       registerService.getSubCategory(id).then(function (data) { 
         console.log(data); 
         $scope.cur_category = data; 
         console.log($scope.cur_category); 
         $state.go('app.home.register3', {'categoryId': id}) 
       }); 

      }; 
      $scope.signin = function() { 
       $state.go('app.login.step1') 
      } 

     } 
    })(); 

registration-2.html:

<md-content ng-controller="registerCtrl"> 
     <h3 class="Select-Sub-category">Select Sub-Category</h3> 
     <div layout="row" layout="column" flex=100" style="width:200px;"> 
      <div style="margin-left:16px" class="Rectangle-425-Copy-3" flex-gt-sm="50"> 
       <span class="RETAIL">{{cur_category.name}}</span> 
      </div> 
     </div> 
    </md-content> 

Und in App Js ich habe einen Zustand wie folgt definiert:

$stateProvider.state('app.home.register2', { 
         url: "/register", 
         templateUrl: 'template/register/registration-1.html', 
         controller: 'registerCtrl', 

        }) 
        .state('app.home.register3', { 
         url: "/register/{categoryId:[0-9]{1,5}}", 
         templateUrl: 'template/register/registration-2.html', 
         controller: 'registerCtrl' 

        }) 
+0

Wo ist Ihre Uhr oder Anrufunterkategorie (category_id)? Ich denke, dass Sie keine Unterkategorie mit einer ausgewählten Kategorie-ID aufrufen. – hurricane

+0

Ich habe meinen Registrierungs-1.html-Code hinzugefügt. Ich habe die Funktion Unterkategorie in registration-1.html aufgerufen. Dann ändert sich der Status. – Anurag

Antwort

2

Sie eine andere Funktion in Ihrem Register.js zu schaffen haben, die Unterkategorie() aufrufen. aktualisieren Sie Ihren Code mit diesem wird es funktionieren.

var categoryId=$stateParams.categoryId; 

$scope.categoryData=function(){ 
$scope.subCategory(categoryId); 
} 

und rufen Sie diese Funktion in Ihrer Registrierung-2.html.

<md-content ng-init="categoryData()"> 
     <h3 class="Select-Sub-category">Select Sub-Category</h3> 
     <div layout="row" layout="column" flex=100" style="width:200px;"> 
      <div style="margin-left:16px" class="Rectangle-425-Copy-3" flex-gt-sm="50"> 
       <span class="RETAIL">{{cur_category.name}}</span> 
      </div> 
     </div> 
    </md-content> 
Verwandte Themen