javascript - 如何解决 TypeError : Cannot convert undefined or null to object at Function. 键(<anonymous>)

标签 javascript angularjs

我正在尝试隐藏该字段。当用户点击 glyphicon-eye-open 时,我将显示 glyphicon-eye-close 并将条件视为 true。如果条件为真,那么我将该值插入数组中。

我正在使用以下功能,我有两个 Angular 色 Actor 和歌手。 两者都是具有相同型号名称的相似字段。我根据 Angular 色显示值(value)观。

我能够将值插入 Actor 的数组中。但如果对歌手尝试相同的操作,则会显示以下错误。

即使我尝试使用不同的型号名称,但仍然遇到相同的错误。

 TypeError: Cannot convert undefined or null to object
        at Function.keys (<anonymous>)
        at $$childScopeClass.ManageProfileController.$scope.pushrolefield (manageprofile.controller.js:214)
        at angular.js:10773
        at angular.js:18981
        at $$childScopeClass.$eval (angular.js:12608)
        at $$childScopeClass.$apply (angular.js:12706)
        at HTMLLabelElement.<anonymous> (angular.js:18980)
        at HTMLLabelElement.dispatch (jquery-2.0.3.min.js:5)
        at HTMLLabelElement.y.handle (jquery-2.0.3.min.js:5)

我的html:

<div class="wrap">
<div class="panel-body newPanelBody" ng-if="displaySingerInfo && !displayActorInfo">
 <div class="newWrap">
            <label for="qual"  class="first-heading">About You*<span class="styleatr">not more than 160 Characters</span></label> 
            <textarea rows="4" cols="10" id="qual" class="textarea1" placeholder="say something about you " ng-model="model.aboutyou">
            </textarea> 

        </div>
                 <label ng-class="{'glyphicon glyphicon-eye-close': allowrole.saboutyou, 'glyphicon glyphicon-eye-open': !allowrole.saboutyou}" ng-click="pushrolefield(allowrole.saboutyou = allowrole.saboutyou?false:true)"><input class="eyecheck1" type="checkbox" ng-model="allowrole.saboutyou" ng-hide="allowrole.saboutyou || !allowrole.saboutyou"/></label>             
                            </div>
</div>

<div class="panel-body newPanelBody" ng-if="displayActorInfo && !displaySingerInfo">
 <div class="newWrap">
            <label for="qual"  class="first-heading">About You*<span class="styleatr">not more than 160 Characters</span></label> 
            <textarea rows="4" cols="10" id="qual" class="textarea1" placeholder="say something about you " ng-model="model.aboutyou">
            </textarea> 

        </div>
                 <label ng-class="{'glyphicon glyphicon-eye-close': allowrole.saboutyou, 'glyphicon glyphicon-eye-open': !allowrole.saboutyou}" ng-click="pushrolefield(allowrole.saboutyou = allowrole.saboutyou?false:true)"><input class="eyecheck1" type="checkbox" ng-model="allowrole.saboutyou" ng-hide="allowrole.saboutyou || !allowrole.saboutyou"/></label>             
                            </div>
</div>
</div>

我的 Controller :

$scope.rolehide = {
        aboutyou: 'aboutyou',
        saboutyou: 'saboutyou
    };

    $scope.allowrole = {
        aboutyou: false,
        saboutyou: false
    };

    $scope.rolehiddenfields = [];

    $scope.pushrolefield = function(allow){
        debugger;
        console.log(allow);
        $scope.rolehiddenfields = [];
        var users = {}, 
            allows = $scope.allowrole;
      Object.keys(allows).forEach(function(key){
        allows[key] ? users[key] = $scope.rolehide[key] : null;
      });
      $scope.rolehiddenfields.push(users);
    }; 

最佳答案

在 JS 文件末尾附近,您使用单行 if 条件,并带有 null。将 null 替换为空对象或空数组。

关于javascript - 如何解决 TypeError : Cannot convert undefined or null to object at Function. 键(<anonymous>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527991/

相关文章:

angularjs - 如何根据 Nodejs 中的环境变量在 Angular 中插入动态脚本

javascript - Angular js - 检查当前 url 是否与路由匹配(使用动态 url 参数)

javascript - 覆盖 stub 的函数

javascript - 未捕获错误 : Syntax error, 无法识别 jQuery 中的表达式

javascript - 使用jquery自动扩展文本区域

javascript - express-validator 什么都不做

javascript - Angularjs - 表单发布数据未发布?

javascript - 从模板中多次调用的函数

javascript - 如果屏幕分辨率小于更改 div 内容?

javascript - 对 Angular $resource 查询进行测试显示找不到 ngResourceProvider 错误