为什么angularjs不能在本地呈现为正确的文档?请尝试localhost

时间:2014-08-16 04:29:43

标签: html angularjs

这不是本地写的。我只看到h1 =“你的购物车”的内容

如果我添加任何代码或brakets来完全填充错误,它会给我一个语法错误,我没有看到。我正在从orielly书“AngularJs”中复制。

如果语法错误,请告诉我。

<html ng-app>
    <head>
        <title>Your Shopping Cart</title>
    </head>
    <body ng-controller='CartController'>
       <h1>Your Shopping Cart</h1> 
        <div ng-repeat='item in items'>
            <span>{{item.title}}</span>
            <input ng-model='item.quantity'>
            <span>{{item.price | currency}}</span>
            <span>{{item.price * item.quantity | currency}}</span>
            <button ng-click="remove{$index}">Remove</button>
        </div>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
        <script>
            function CartController($scope) {
                $scope.item = [
                    {title: 'Paint pots', quantity: 8, price: 3.95},
                    {title: 'Polka dots', quantity: 17, price: 12.95},
                    {title: 'Pebbles', quantity: 5, price: 6.95}
                ];
                $scope.remove = function(index) {
                    $scope.items.splice(index, 1);
                }
            }
        </script>
    </body>
</html>

我现在遇到的问题是ng-repeat触发并显示一次,然后默认为注释掉的行。请帮忙。

这是正确的语法:

<html ng-app>
    <head>
        <title>Your Shopping Cart</title>
    </head>
    <body ng-controller='CartController'>
       <h1>Your Shopping Cart</h1> 
        <div ng-repeat='item in items'>
            <span>{{item.title}}</span>
            <input ng-model='item.quantity'>
            <span>{{item.price | currency}}</span>
            <span>{{item.price * item.quantity | currency}}</span>
            <button ng-click="remove($index)">Remove</button>
        </div>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
        <script>
            function CartController($scope) {
                $scope.items = [
                    {title: 'Paint pots', quantity: 8, price: 3.95},
                    {title: 'Polka dots', quantity: 17, price: 12.95},
                    {title: 'Pebbles', quantity: 5, price: 6.95}
                ];
                $scope.remove = function(index) {
                    $scope.items.splice(index, 1);
                }
            }
        </script>
    </body>
</html>

2 个答案:

答案 0 :(得分:2)

这是一个由两部分组成的错字问题。

您有$scope.item = [,但在代码的其余部分中将其称为items。请注意最后的s。将其更改为$scope.items = [将解决第一个问题。

当您使用ng-click="remove{$index}"时,您还有ng-click="remove($index)"。由于remove是一个函数,因此应该使用括号。

答案 1 :(得分:1)

这是您的语法错误:

<button ng-click="remove{$index}">Remove</button>

你应该写:

<button ng-click="remove($index)">Remove</button>

编辑: 我迟到了回答。正如James指出的那样,$ scope.item应该是$ scope.items。