不显示控制器的值

时间:2014-11-24 22:30:33

标签: django angularjs

我想在我的Django应用程序中介绍Angular。我怀疑,我的问题与interpolateProvider直接相关,这是因为django模板所需要的......但是谁知道。

我的简化版本也存在问题:http://jsfiddle.net/33417xsm/

这是我目前的版本:

<html ng-app="MyApp">
    <head>
        <script type="text/javascript" src="/static/js/libs/angular/angular.js"></script>
        <script type="text/javascript" src="/static/js/app/app.js"></script>
    </head>
    <body>
        <div ng-controller="MyAppController">
            [[ 2 + 4 ]]
            <p>[[ MyAppController.product.title ]]</p>
        </div>
    </body>
</html>

file:app.js

(function(){
    var app = angular.module('MyApp', []);

    app.config(function ($interpolateProvider) {
                $interpolateProvider.startSymbol('[[');
                $interpolateProvider.endSymbol(']]');
        }
    );

    app.controller('MyAppController', function (){
        this.product = gem;
    });

    var gem = {
        'title': 'Inferno'
    };

})();

我的结果: enter image description here

你可以猜到,我也希望显示Inferno。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的应用配置正常。但我明白了,你并没有明白角度概念。

您必须使用$ scope来绑定数据。你也永远不需要&#34; myController.product&#34;像这样的符号。

我更新了您的代码http://jsfiddle.net/33417xsm/4/

<div ng-app="MyApp" ng-controller="MyAppController">
    {{ 2 + 4 }}
    <p>{{product.title}}</p>
</div>

var app = angular.module('MyApp', []);

app.controller('MyAppController', function ($scope){
    $scope.product = {"title":"product title"};
});