2016-03-25 16 views
0

Bu konuda birkaç soruya baktım ve hayatım boyunca, bunu anlayamıyorum. Ben ng-route kullanmıyorum ve bazı temel js öğrenmek için çalışıyorum dosya alma emin değilim, bu yüzden birkaç öğreticiler yapıyorum. Biri bu hatayı atıyor:

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.10/ $injector/modulerr?p0=gemStore&p1=Error%…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.10%2Fangular.min.js%3A17%3A350)

İşte benim kod

EDITED: HTML

//index.html 
<!doctype html> 
<html ng-app="gemStore"> 
    <head> 
    <title>myTestApp</title> 
    <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script> 
    <script type="text/javascript" src="app.js" /> 
    </head> 
    <body ng-controller="StoreController as store"> 
    <div ng-repeat="product in store.products" ng-hide="store.product.soldOut"> 
     <h1>{{store.product.name}}</h1> 
     <h1>{{store.product.price}}</h1> 
     <h1>{{store.product.desc}}</h1> 
     <button ng-show="store.product.canPurchase">Add To Cart</button> 
    </div> 
    </body> 
</html> 

JavaScript:

var app = angular.module('gemStore', []); 
    app.controller('StoreController', function() { 
     this.products = gems; 
    }); 
    var gems = [ 
     { 
      name: 'Gem', 
      price: 2.95, 
      desc: '. . .', 
      canPurchase = false, 
      soldOut = true, 
     }, 
     { 
      name: 'Gem2', 
      price: 3.95, 
      desc: '. . .', 
      canPurchase = false, 
      soldOut = true, 
     } 
    ] 
+0

? Gereksiz ve sözdizimi yanlış.() –

+0

ile gerçek aramayı kaçırıyorsunuz Ayrıca, html'de bir sözdizimi hatası var. Senin div –

+0

Üzgünüz ng-tekrar özelliği, muhtemelen eski bir öğretici. Sözdizimi hatasını yakaladığınız için teşekkür ederiz. Hata hala orada olsa da, başka bir hata yapmış olmalıyım. – Speed

cevap

1

hataları/Birkaç öneri app.js:

  • div ng-controller="StoreController as store" sözdizimi doğru olup olmadığını ben bilmiyorum ama Gereksiz. Sadece Sen senin Mücevher ilan şekilde bir hata
  • oldu :) şey görmek amacıyla soldOut = true ile en az bir ürün olması gerekir div ng-controller="StoreController"
  • yazabilir. Bir nesneyi açık olarak bildirmenin doğru yolu, var gem = {soldOut = true} değil, var gem = {soldOut: true}.
  • Köşeli kodunuzu bir IIFE ile sarmanıza gerek yoktur. (Bir IIFE, (function() {....})(); ile yazdığınız şeydir)
  • Açısal denetleyiciler, $scope bağımlılığı (BTW'yi enjekte etmeniz gereken) aracılığıyla yöntemleri ve nesneleri ortaya çıkarır. Denetleyicinizin içinde bir var bildirir ve HTML'nizde erişmeye çalışırsanız, bunu yapamazsınız.
  • (EDITED) products dizininize bir göz atın. Son anahtarınızın ve değerinizin sonunda virgül gerekmez ->soldOut: false,.

kodu buraya edilir Çalışma: Neden hayattan kullandığınız http://plnkr.co/edit/s2397TznhGii84vwSIFA?p=preview

+0

Benimle bu zaman boyunca yürümeyi ve bana anlamama yardımcı olmak için zaman geçirmekten hoşlanıyorlar. Kodu anlamak istiyorum, sadece işe yaramaz. Yardım için teşekkürler. – Speed

2

Bu oldukça yakın almalısınız. Umut yardımcı olur :)

<html ng-app="gemStore"> 
<head> 
    <title>Angular JS</title> 
    <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script> 

</head> 
<body> 
    <div ng-controller="StoreController"> 

     <h1> {{products.name}} </h1> 
     <h1> {{products.price}} </h1> 
     <h1> {{products.desc}} </h1> 
    </div> 
    <script type="text/javascript" src="app.js"></script> 
</body> 
</html> 

(function() { 

var app = angular.module("gemStore", []); 
app.controller('StoreController', ['$scope', function($scope) { 
    $scope.products = gem; 
}]); 
var gem = 
    { 
     name:'New Product', 
     price:'2.95', 
     desc: '...' 
    } 
})(); 
+0

@Speed, html dosyasında – HenryDev

+0

gövde etiketinin sonundan hemen önce app.js bildirmek için her zaman iyi bir uygulamadır. 'Ng-repeat' bit'i kaldırdınız –

+0

Yanıt için teşekkür ederiz. mparnisari sohbet etmemi sağladı. İpuçlarını da aklımda tutacağım. – Speed

İlgili konular