如何将全局变量传递给控制器​​angularjs

时间:2014-06-06 05:41:21

标签: angularjs express ejs

我想通过ejs将后端发送到angularjs的控制器前端

app.js
我将数据传递给view / indexcontens。

var users = [
  {
    name: 'john',
    email: 'john@email.com'
  },
  {
    name: 'peter',
    email: 'peter@email.com'
  },
  {
    name: 'max',
    email: 'max@email.com'
  }
];

app.get('/partials/indexContents.html', function(req, res) {
  res.render('partials/indexContents', {users:users})
});
app.get('/partials/about.html', function(req, res) {
  res.render('partials/about')
});

视图/分音/ indexContents 我把它变成了全局变量。

  <div>
    <h3>home</h3>
    <p>wecome to my blog. I hope you enjoy the content!</p>
    <ul>
        <li ng-repeat="post in blogposts">{{post}}</li>
    </ul>
  </div>
        <script>
             users = "<%=abc=users[0].name%>";
        </script>

public / js / contollers.js
试图获取全局变量

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

app.config(function($routeProvider) {
    //set up routes
    $routeProvider
    .when('/home',{
        templateUrl:'partials/indexContents.html',
        controller:'SimpleController'
    })
    .when('/about',{
        templateUrl:'partials/about.html',
        controller:'AboutController'
    })      
    .otherwise({
        redirectTo:'/'
    });
});


app.controller('SimpleController', function($scope){

    $scope.blogposts=[
    'blog post1',
    'blog post2',
    window.users
    ];
}); 


app.controller('AboutController', function($scope){
    $scope.name="graum";
    $scope.bio="i just made it";
});

但它只显示空白而不是&#39; john&#39;。

请给我一个解决方案,谢谢

1 个答案:

答案 0 :(得分:0)

为什么不使用$ resource从服务器获取名称?我知道这不是最好的选择,当然也不是你想要的,但这种方式确实有效。 不过你也可以试试这个

<script>
         (function() {users = "<% users[0].name%>";})();
</script>