2014-11-24 61 views
0

我想在我的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> 

文件: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

你的应用程序配置没问题。但是我明白,你并不清楚角度概念。

您必须使用$ scope来绑定数据。你也不需要像这样的符号“myController.product”。

我更新了你的代码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"}; 
}); 
+0

所以,这是错的? http://i.imgur.com/nySbsOI.png – noisy 2014-11-24 22:51:05

+1

不,这没有错,但它不是最佳实践。您可以清楚地看到差异,我在这里更新http://jsfiddle.net/33417xsm/6/ – 2014-11-24 22:54:40

+0

我找到了两种方法的截屏:https://egghead.io/lessons/angularjs-an-alternative-approach-到控制器 – noisy 2014-11-30 18:47:30