如何在HTML模板中定义AngularJS控制器

时间:2016-01-16 12:44:16

标签: javascript html angularjs

我有以下文件结构:

  • 的index.html

  • TPL / page.html中

  • app.js

说明

  1. app.js定义了主模块并路由到page.html

  2. index.html定义模板视图,包括app.js

  3. page.html定义了<script>标签内的PageController和正在使用此控制器的div。

  4. 问题 当PageController驻留在page.html中时它不起作用,但是当它被包含到app.js中时它就可以工作了。错误如下:参数'PageController'不是aNaNunction,未定义。

    在模板中定义控制器似乎为时已晚。但实际上这是我的要求。我想隐藏所有用户的page.html + controller(甚至是他们的代码),并使Spring安全性仅对特定组可见。这就是为什么我为这个页面定义了安全约束,并希望它只在满足这些约束时执行。

    更新#1 控制器定义:

    <script type="text/javascript">
      mainApp.controller('PageController', function($scope, $rootScope) {
        ...
      });
    </script>
    
    <md-content ng-controller="PageController" ...
    

1 个答案:

答案 0 :(得分:0)

如果脚本标记和模板的HTML都在外部html文件中定义,Angular应该抱怨并说你不能在模板文件中有两个根元素。

我的建议是将您的控制器放在一个单独的JS文件中,并在其上设置您的Spring Security权限。如果您使用JSP或类似的东西来呈现主页面,那么如果用户有权访问,您可以在控制器的<script>标签周围添加条件。