【问题标题】:Angular expression rendered in raw format sometimes有时以原始格式呈现角度表达式
【发布时间】:2015-12-29 01:29:25
【问题描述】:

我正在使用 Angular.js 构建一个简单的网页。在浏览器(Chrome)中打开网页时,页面以原始角度表达式呈现,如下所示

在重新加载页面(有时 2 - 3 次)时,Angular 表达式会被评估并正确呈现,如下所示

当这两种情况发生时,没有特定的模式。可能的原因是什么?

控制器文件

(function(){
    var userRole = angular.module('userRoleController', []);

    userRole.controller('userRoleDisplayController', function(){
        this.userRoles = userRolesList;
        this.selectedRole = 0;
        this.selectRole = function(roleID){
            this.selectedRole = roleID;
        };
        this.isSelectedRole = function(roleID){
            console.log(roleID);
            console.log(this.selectedRole === 0 ? true : this.selectedRole === roleID);
            return this.selectedRole === 0 ? true : this.selectedRole === roleID;
        };
        this.showRoleExpander = function(){
            return this.selectedRole
        };
        this.expandAllRoles = function(){
            this.selectedRole = 0;
        };
    });

    userRole.directive('userLogin', function(){
        return{
            restrict: 'E',
            templateUrl: '../../views/template/login.html'

        };
    });

    var userRolesList = [
    {
        role_id: 1,
        role_type: 'Student'
    },
    {
        role_id: 2,
        role_type: 'Admin'
    }];
})();

index.js 文件

(function(){
    var home = angular.module('home', ['userRoleController']);
})();

html文件

<body ng-app='home'>
    <header>
    </header>
    <aside class='users' ng-controller='userRoleDisplayController as roleDispCtrl'>
        <ul>
            <li class='roles' ng-repeat='userRole in roleDispCtrl.userRoles' ng-show='roleDispCtrl.isSelectedRole(userRole.role_id)'
             ng-click='roleDispCtrl.selectRole(userRole.role_id)'>
                {{userRole.role_type}}              
            </li>
            <li ng-show="roleDispCtrl.showRoleExpander()">
                <user-login>
                </user-login>
            </li>
            <li class="roleExpander" ng-show="roleDispCtrl.showRoleExpander()" ng-click="roleDispCtrl.expandAllRoles()">
            </li>
        </ul>       
    </aside>
    <main>          
    </main> 
    <script charset="utf-8" async defer src="../scripts/JS Frameworks/angular.min.js"></script>
    <script charset="utf-8" async defer src="../scripts/index.js"></script>
    <script charset="utf-8" async defer src="../scripts/controllers/userRoleController.js"></script>
</body> 

【问题讨论】:

  • 查看原始格式显示表达式时控制台是否有错误
  • 感谢 manoj。在控制台中出现此错误 -> 无法实例化模块主页,原因是:错误:[$injector:nomod] errors.angularjs.org/1.4.8/$injector/nomod?p0=home at Error (native)
  • 我是使用 Angular 的新手。你能解释一下是什么原因造成的吗?
  • 当你在声明它之前尝试访问模块“home”。请参阅docs.angularjs.org/error/$injector/nomod 了解此错误详细信息。如果您仍然面临同样的问题,请在您声明模块的地方发布代码。
  • 从我读到的,看起来我正在按照它所说的方式做。我做错了什么我在文档中忽略了?

标签: angularjs rendering webpage-rendering


【解决方案1】:

这通常是由于某些错误导致 angular 无法正确加载。因为页面偶尔会正确加载,所以我会假设您的业务逻辑在您如何连接事物方面可能是正确的。您可以尝试检查一些依赖项以确保它们正确加载。如果您正在从另一个域加载资源并且由于某种原因无法加载,则可能会导致导致角度加载失败的问题。

【讨论】:

  • 我没有从其他来源加载任何内容。我有这个 html + 一个 css 文件,并将 Angular 文件分成 index.js 和 controller.js。显示的数据是在控制器文件中硬编码的 JS 对象数组
  • 如果您可以发布该代码,将更容易确定问题。
猜你喜欢
  • 2017-09-17
  • 2020-04-03
  • 1970-01-01
  • 2015-01-26
  • 2016-01-28
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多