用范围变量替换ng-init并不起作用

时间:2017-01-09 23:45:34

标签: javascript angularjs

我尝试在下面的angularjs代码中使用scope而不是ng-init,但没有任何原因可以解释为什么?

   <!doctype html>
    <html ng-app="myApp" ng-controller="myCtrl">
    <head>
    <title>Bookshop - Your Online Bookshop</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
    </head>
    <body>

    <div class="container">
            <h2>Your Online Bookshop</h2>
            <ul class="unstyled">
                    <li ng-repeat="book in books">
                    {{book}}
                    </li>
    </ul>
    </div>

    <div class="container">
            <h2>Your Online Bookshop</h2>
            <ul class="unstyled">
                    <li ng-repeat="book in books_author">
                            <span>{{book.name}} written by {{book.author}}</span>
                    </li>
            </ul>
    </div>

    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
    $scope.books = ['Effective Java','Year without Pants','Confessions of public speaker','JavaScript Good Parts'];
    $scope.books_author = [{'name': 'Effective Java', 'author':'Joshua Bloch'},{'name': 'Year without Pants', 'author':'Scott Berkun'},{ 'name':'Confessions of public speaker','author':'Scott Berkun'},{'name':'JavaScript Good Parts','author':'Douglas Crockford'}];
    });
    </script>    
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
    </body>
    </html>

2 个答案:

答案 0 :(得分:1)

它适用于我,但你必须在使用之前加载角度。所以改为:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
 <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
    $scope.books = ['Effective Java','Year without Pants','Confessions of public speaker','JavaScript Good Parts'];
    $scope.books_author = [{'name': 'Effective Java', 'author':'Joshua Bloch'},{'name': 'Year without Pants', 'author':'Scott Berkun'},{ 'name':'Confessions of public speaker','author':'Scott Berkun'},{'name':'JavaScript Good Parts','author':'Douglas Crockford'}];
    });
    </script>    

答案 1 :(得分:1)

代码很好,只需在包含AngularJS时移动该行:

return 0;

在自定义脚本中使用它之前,它会起作用!