加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 错误:[ngModel:nonassign]表达式是不可分配的

发布时间:2020-12-17 07:42:13 所属栏目:安全 来源:网络整理
导读:尝试根据同一行中的另一个值从gridcollection显示列值. 用户可以选择/更改包含具有值的网格的模态中的值.当模态关闭时,值将被传回.在那一刻,我想为“也被称为”设定一个值: HTML: Also known as: input type="text" `ng-model="displayValue(displayNameDa
尝试根据同一行中的另一个值从gridcollection显示列值.
用户可以选择/更改包含具有值的网格的模态中的值.当模态关闭时,值将被传回.在那一刻,我想为“也被称为”设定一个值:

HTML:

Also known as: <input type="text" `ng-model="displayValue(displayNameData[0].show,displayNameData[0].value)">`

我在范围上创建了一个函数,只有当’show’值为true时才选择该值:

$scope.displayValue = function (show,val) {
    if (show) {
        return val;
    }
    else {
        return '';
    }
}

但是当我关闭模式时,我会收到一个错误:

Error: [ngModel:nonassign] Expression 'displayValue(displayNameData[0].show,displayNameData[0].value)' is non-assignable.

参考文献:http://plnkr.co/edit/UoQHYwAxwdvX0qx7JFVW?p=preview

正如HackedByChinese所提到的,你不能将ng-model绑定到一个函数,所以试试这样:
<input type="text" ng-if="displayNameData[0].show"
                   ng-model="displayNameData[0].value">

或者如果您希望此控件可见,您可以创建指令,添加功能到$解析器,将根据显示设置空值:

angular.module('yourModule').directive('bindIf',function() {
        return {
            restrict: 'A',require: 'ngModel',link: function(scope,element,attrs,ngModel) {
                function parser(value) {
                    var show = scope.$eval(attrs.bindIf);
                    return show ? value: '';
                }

                ngModel.$parsers.push(parser);
            }
        };
    });

HTML:

<input type="text" bind-if="displayNameData[0].show"
                   ng-model="displayNameData[0].value">

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读