SORU
15 ŞUBAT 2012, ÇARŞAMBA


Bir denetleyici başka bir arayabilir mi?

Bir denetleyici başka bir kullanım olur mu?

Örneğin:

Bu HTML belgesi sadece bir ileti messageCtrl.js dosyasında MessageCtrl denetleyicisi tarafından teslim yazdırır.

<html xmlns:ng="http://angularjs.org/">
<head>
    <meta charset="utf-8" />
    <title>Inter Controller Communication</title>
</head>
<body>
    <div ng:controller="MessageCtrl">
        <p>{{message}}</p>
    </div>

    <!-- Angular Scripts -->
    <script src="http://code.angularjs.org/angular-0.9.19.js" ng:autobind></script>
    <script src="js/messageCtrl.js" type="text/javascript"></script>
</body>
</html>

Denetleyicisi dosyası aşağıdaki kodu içerir:

function MessageCtrl()
{
    this.message = function() { 
        return "The current date is: "   new Date().toString(); 
    };
}

Sadece geçerli tarih yazdıran;

Eğer MessageCtrl, bunu nasıl yapıyor hakkında gitmek istiyorsunuz? belirli bir biçimde geri tarih teslim eden başka bir denetleyici, DateCtrl eklemek olsaydım Dİ çerçevesi XmlHttpRequests ve erişim hizmetleri ile ilgili gibi görünüyor.

Herkes yardımcı olabilir?

CEVAP
23 ŞUBAT 2012, PERŞEMBE


Denetleyicileri arasında iletişim kurmak için birden çok yolu vardır.

En iyi ihtimalle bir hizmet paylaşıyor:

function FirstController(someDataService) 
{
  // use the data service, bind to template...
  // or call methods on someDataService to send a request to server
}

function SecondController(someDataService) 
{
  // has a reference to the same instance of the service
  // so if the service updates state for example, this controller knows about it
}

Başka bir yol kapsamında bir olay yayan:

function FirstController($scope) 
{
  $scope.$on('someEvent', function(event, args) {});
  // another controller or even directive
}

function SecondController($scope) 
{
  $scope.$emit('someEvent', args);
}

Her iki durumda da, herhangi bir yönerge ile de iletişim kurabilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dougownsall

    dougownsall

    7 EKİM 2007
  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013