SORU
13 Ocak 2014, PAZARTESİ


İç içe parametreleri, görünümü adlandırılmış, üst şablondan geçti erişme uı-router - açısal?

Denetleyici bir parametre erişmeye çalışıyorum Merhaba "ViewWorklogCrtl" uı-router kullanarak ve zorluk içine çalışırken.

Temel olarak, benim ana şablon içerir:

a(ui-sref="instance-ticket.worklog({id:{{ticket.testnum}}})") show

ve sonra alt sayfa daha

section(ui-view="top-section")

Benim app.js içeren istemci tarafı kısa bilgi yönlendirme var:

 $stateProvider
.state('instance-ticket', {
  url: '/ticket/:instanceID',
  templateUrl: 'partials/instance-ticket',
  controller: 'ViewTicketCrtl'
})
.state('instance-ticket.worklog', {
  views:{
    'top-section':{
      templateUrl:'/partials/ticket.worklog.jade',
      controller: 'ViewWorklogCrtl'
      }
  }
  })

Şablon yükleniyor düzgün çalışma, konu ve soru bulamıyorum cevap - nasıl erişim "testnum" olmaktan geçtiğini uı-sref bağlantı, ve içinde ViewWorkLogCtrl... orada daha iyi bir yaklaşım bu?

Çok teşekkürler!!!

CEVAP
13 Ocak 2014, PAZARTESİ


instanceID bir parametre olarak bildirilmiş, bu şekilde ulaşabiliriz

.controller('ViewWorklogCrtl',
    [       '$scope','$stateParams'
    function($scope , $stateParams ) {    
        // 
        $scope.instanceID = $stateParams.instanceID;
        ...

Diğer tüm ayrıntılar burada https://github.com/angular-ui/ui-router/wiki/URL-Routing bulunamadı

Ve ui-sref yapılan çağrı şöyle olmalı

<a ui-sref="instance-ticket.worklog({ instanceID:ticket.testnum })" >..

Uzatmak:

Biz almak istiyoruz diye iki parametre, 1) üst 2 örnek kimliği) geçerli testnum, bu gibi devlet Definition uyum sağlamak zorundayız

.state('instance-ticket', {
  url: '/ticket/:instanceID',      // instanceID
  templateUrl: 'partials/instance-ticket',
  controller: 'ViewTicketCrtl'
})
.state('instance-ticket.worklog', {
  // new param defintion
  url: '/worklog/:testnum',         // testnum
  views:{
    'top-section':{
      templateUrl:'/partials/ticket.worklog.jade',
      controller: 'ViewWorklogCrtl'
      }
  }

ui-sref

<a ui-sref="instance-ticket.worklog({ instanceID:1, ticket.testnum:2 })" >..

Ve bu şekilde ulaşabiliriz:

.controller('ViewWorklogCrtl',
    [       '$scope','$stateParams'
    function($scope , $stateParams ) {    
        // 
        console.log($stateParams.instanceID)
        console.log($stateParams.testnum)
        ...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jay Will

    Jay Will

    19 NİSAN 2006
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013