初学者在Angularjs中发布范围问题

时间:2014-11-21 10:23:56

标签: javascript django angularjs

我正在使用角度在前端和django作为后端,编写smll东西来学习angular.I我正在尝试显示我在scope中定义的变量。我正在加载html作为锚标签的部分onclick。 这是我的app.js,它有我的路由器设置:

var blogApp = angular.module('blogApp',['ngRoute'])

blogApp.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('{$');
    $interpolateProvider.endSymbol('$}');
});

blogApp.config(['$routeProvider',function($routeProvider){
    $routeProvider.
      when('/login', {
        templateUrl: 'static/partials/login.html',
      }).
      when('/register',{
        templateUrl:'static/partials/register.html',
      }).
      when('/shoppingcart', {
        templateUrl:'static/partials/shopping_cart.html',
        controller:'CartController'
      }).
      otherwise({
        redirectTo: '/'
      });
}]); 

这是我定义的CartController:

blogApp.controller('CartController', function($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}
                ];

});

我已经包含了包含我的CartController的js以及定义了我的路由的js。我的部分(称为shopping_cart.html)是这样的:

<div ng-controller='CartController'>
    <h3>Your Cart</h3>
    <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>
</div>

有趣的问题是item.quantity正确显示,但item.title,item.price等显示在我的输出中。如果它显示item.quantity这意味着item变量包含定义的变量,即使我把item.title放在输入中代替item.quantity它显示变量,但{%item.title%}本身永远不会显示。请指出我的错误,并善意解释为什么会发生这种情况。

1 个答案:

答案 0 :(得分:0)

这看起来像是一个错字。

在您的配置中,您可以覆盖开始和结束符号,以便插值到&#39; {$&#39;和&#39; $}&#39;,但在您的模板中,您使用&#39; {%&#39;和&#39;%}&#39;代替。用$替换%,它应该工作。