2016-06-18 12 views
5

Burada ilk kez angularJS kullanılır. Temel olarak, yönlendirme hizmetini kullandım, böylece bir şablonda html koduyla arama yapmak için bir yönlendirme var. Ayrıca, şablondaki kodun düzgün görüntülenmesini (slayt gösterileri ve diğer pek çok şey arasında) için gerekli olan tüm düzenli javascript işlevlerine sahibim.Normal javascript kodu ng-view (angularjs) içinde nasıl kullanılır?

Çalıştırdığımda tüm bu boş hataları alıyorum (JS işlevlerimin ng görünümünde/şablonda erişim koduna erişemediği veya ng-view/template'in yüklenmesinden önce çalıştığı için çeşitli öğeler bulamıyor gibi görünüyor) .

Tüm javascript işlevlerimi, o şablon için atadığım denetleyiciye yapıştırdığımda çalıştı. Ama bunu yapmamam gereken bir his var. Bu işi yapmanın doğru yolu nedir? Teşekkürler. Farklı bir rota üzerinde olduğunda onlar yürütür hangi unsurlar bulunamıyor çünkü

var app = angular.module("myApp", ["ngRoute"]); 
app.config(function($routeProvider){ 
    $routeProvider 
    .when("/",{ 
     templateUrl:"about.html", 
     controller:"aboutCtrl" 
    }) 
    .when("/aboutus", { 
     templateUrl:"entertainment.html" 
    }) 
}); 

app.controller('aboutCtrl', function($scope){ 
    //placed regular javascript/jquery code here to make it work 
}); 

cevap

3

Sizin jQuery fonksiyonları muhtemelen çalışmaz.

  • En temiz yolu:

    Yolları düzeltmek onun html şablonunu ve gerekli kodu tanımlamak olduğu bir açısal direktifi, içine slayt sarın. Kod sadece şablon çağrıldığında yürütülür. Angular ile yeni başladığınıza göre, muhtemelen daha fazla yardıma ihtiyacınız olacaktır.

  • Kodu şablona koyun: Ayrıca, gerekli JS'yi şablona < komut dosyası> </script> bloğu aracılığıyla da eklemeyi deneyebilirsiniz. Bu şekilde kodu sadece şablonunuz yüklendiğinde değerlendirilecektir.
  • Dediğiniz gibi, kodunuzu denetleyicinize de ekleyebilirsiniz. Ama bu sizin denetleyici kabartmak ve hızlı bir şekilde

Seçenekler 2 & 3 çalışacak kod pis bir hale değil, aynı zamanda hızlı bir şekilde büyük bir karmaşa içine uygulamanızı dönecek olacak. Kodunuzu temiz tutmak için kesinlikle açısal yönergelere daha fazla kazmanızı tavsiye ederim.

Belki de this tutorial sizin için iyi bir başlangıç ​​olabilir.

+0

teşekkürler bir demet. Daha fazla araştırma yapacağım ve ilk çözümü en zarif olanı olarak göreceğim. – goldensausage

+0

Tüm javascript kodumu ayrı yönergelere koymayı başardım (yalnızca JS kodunu içeren bir html dosyasını bağlamak için templateUrl kullanarak). Ama başka bir sorun ortaya çıktı. offsetHeight, belirli divlerin yanlış yüksekliklerini, içindeki metinlerle bildiriyor (bunu yeniledikten sonra doğru bildiriyor). Bu sorunu çözmeden önce herşeyi yüklemeye ve işlemeye başlamasına izin veren $ (window) .bind ("load", function()) yaparak çözdüm. Ama şimdi bu fonksiyon bir şablon içinde kullanıldığında bile çalışmaz. – goldensausage

İlgili konular