簡體   English   中英

Angular應用程序無法在瀏覽器上正確呈現

[英]Angular app is not rendering properly on the browser

我正在用角度編寫商店應用程序,但是在瀏覽器中沒有正確顯示。 我想我錯過了一些東西,但看不到:

我切割了html文件。 它只是顯示鏈接<scripts>的第一行。

我通過添加<meta charset="utf-8">修復標點符號。 因此,到現在為止,這些字符都可以顯示出來了。 我忘了我從angular aplication添加其他腳本,但我看不到!

它應該顯示標題和圖像,但是沒有

index.html

<!DOCTYPE html>
<html ng-app="gemStore">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
    <script type="text/javascript" src="angular.min.js"></script>
    <script type="text/javascript" src="app.js"></script>
  </head>
  <body class="list-group" ng-controller="StoreController as store">
    <header>
      <h1 class="text-center">Prueba tienda</h1>
      <h2 class="text-center">_ aplicación con Angular-js _</h1>
    </header>
    <div class="list-group-item" ng-repeat = "product in store.products">
      <h3>
        {{product.name}}
        <em class="pull-right">{{product.price | currency}}</em>
      </h3>
<!-- Image gallery -->
      <div class="gallery" ng-show="product.images.length"
           ng-controller="GalleryController as gallery">
        <img ng-src="{{product.images[gallery.current]}}">
        <ul class="list-inline thumbs">
          <li class="thumbnail" ng-repeat="image in product.images">
            <img ng-src="{{image}}" />
          </li>
        </ul>
    </div>

    <section class="tab" ng-controller="TabController as tabber">
      <ul class="nav nav-pills">
        <li ng-class="{active: tabber.isSet(1)}">
          <a href ng-click="tabber.setTab(1)">Description</a></li>
        <li ng-class="{active: tabber.isSet(2)"}>
          <a href ng-click="tabber.setTab(2)">Specs</a></li>
        <li ng-class="{active: tabber.isSet(3)">
          <a href ng-click="tabber.setTab(3)">Reviews</a></li>
      </ul>

      <!-- Review Tab's content -->
      <div ng-show="tabber.isSet(1)">


        <h4>Description</h4>
        <blockquote>{{product.description}}</blockquote>
      </div>
      <div ng-show="tabber.isSet(2)">
        <h4>Specs</h4>
        <blockquote>Shine: {{product.shine}}</blockquote>
      </div>
      <div ng-show="tabber.isSet(3)">

        <!-- Product Reviews List-->
        <ul>
          <h4>Reviews</h4>
          <li ng-repeat="review in product.reviews">
            <blockquote>
              <strong>{{review.stars}} Stars</strong>
              {{review.body}}
              <cite class"clearfix">-{{review.author}} on {{review.createdOn | date}}</cite>
            </blockquote>
          </li>
        </ul>

        <!--Review Form -->
            <form name="reviewForm"
                  ng-controller="ReviewController as reviewCtrl"
                  ng-submit="reviewForm.$valid && reviewCtrl.addReview(product)" novalidate>
              <!--  Live Preview -->
              <blockquote>
                <strong>{{reviewCtrl.review.stars}} Stars</strong>
                {{reviewCtrl.review.body}}
                <cite class="clearfix">—{{reviewCtrl.review.author}}</cite>
              </blockquote>

              <!--  Review Form -->
              <h4>Submit a Review</h4>
              <fieldset class="form-group">
                <select ng-model="reviewCtrl.review.stars" class="form-control" 
                        ng-options="stars for stars in [5,4,3,2,1]" 
                        title="Stars" required >
                  <option value="">Rate the Product</option>
                </select>
              </fieldset>
              <fieldset class="form-group">
                <textarea class="form-control" placeholder="Write a short review of the product..." 
                          title="Review" ng-model="reviewCtrl.review.body"></textarea>
              </fieldset>
              <fieldset class="form-group">
                <input ng-model="reviewCtrl.review.author" type="email" class="form-control" 
                       placeholder="jimmyDean@example.org" title="Email" required/>
              </fieldset>
              <fieldset class="form-group">
                <input type="submit" class="btn btn-primary pull-right" value="Submit Review" 
                       {{reviewForm..$valid}}/>
              </fieldset>
            </form>

      </div>
    </section>
  </body>
</html>

app.js

(function() {
  var app = angular.module('gemStore');

  app.controller('GalleryController', function() {
    this.current = 0;

    this.setCurrent = function(value) {
      this.current = value || 0;
    };
  });

  app.controller('StoreController', function() {
    this.products = gems;
  });

  app.controller('TabController', function() {
    this.tab = 1;

    this.setTab = function(selectTab) {
      this.tab = selectTab;
    };
    this.isSet = function(tabde) {
      return this.tab == tabde;
    };
  });

  app.controller('ReviewController', function() {
    this.review = {};

    this.addReview = function(product) {
      this.review.createOn = Date.now();
      product.reviews.push(this.review);
      this.review = {};
  };
});

  var gems = [{
    name: 'Azurite',
    description: "Some gems have hidden qualities beyond their luster, beyond their shine... Azurite is one of those gems.",
    shine: 8,
    price: 110.50,
    rarity: 7,
    color: '#CCC',
    faces: 14,
    images: [
      "images/gem-02.gif",
      "images/gem-05.gif",
      "images/gem-09.gif"
    ]
  }, {
    name: 'Bloodstone',
    description: "Origin of the Bloodstone is unknown, hence its low value. It has a very high shine and 12 sides, however.",
    shine: 9,
    price: 22.90,
    rarity: 6,
    color: '#EEE',
    faces: 12,
    images: [
      "images/gem-01.gif",
      "images/gem-03.gif",
      "images/gem-04.gif"
    ]
  }, {
    name: 'Zircon',
    description: "Zircon is our most coveted and sought after gem. You will pay much to be the proud owner of this gorgeous and high shine gem.",
    shine: 70,
    price: 1100,
    rarity: 2,
    color: '#000',
    faces: 6,
    images: [
      "images/gem-06.gif",
      "images/gem-07.gif",
      "images/gem-10.gif"
    ]
  }];
})();

看你的ngapp

<html ng-app="gemStore">

在你的JavaScript上

var app = angular.module('gemstore', ['qrScanner', 'ngRoute']);

gemstoregemStore ,不匹配,

外觀字符S

在兩個地方都做相同(區分大小寫)

參見有關JSBin的演示

min.js或簡單js腳本標記中僅包含一個Angular js文件,但應在app.js之前。

模塊名稱應以大寫var app = angular.module('gemstore', ['qrScanner', 'ngRoute']); “ S”代替var app = angular.module('gemstore', ['qrScanner', 'ngRoute']); 使用var app = angular.module('gemStore', ['qrScanner', 'ngRoute']);

還有一件事,您不需要將模塊包裝到自動調用函數中(function(){}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM