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

Angularjs:属性中缺少括号

发布时间:2020-12-17 06:53:09 所属栏目:安全 来源:网络整理
导读:我正在做 Angularjs代码,并有一个奇怪的错误: “错误:[$parse:syntax]语法错误:从[{asset.sn}}开始的表达式[{{asset.sn}}]的第2列处的令牌'{‘无效键]. http://errors.angularjs.org/1.3.11/ $parse / syntax?p0 = { p1 =无效密钥 p2 = 2 p3 = {{asset.
我正在做 Angularjs代码,并有一个奇怪的错误:

“错误:[$parse:syntax]语法错误:从[{asset.sn}}开始的表达式[{{asset.sn}}]的第2列处的令牌'{‘无效键].
http://errors.angularjs.org/1.3.11/ $parse / syntax?p0 = {& p1 =无效密钥& p2 = 2& p3 = {{asset.sn}}& p4 = {asset.sn}}
minErr /< @ http://localhost:8000/app/vendor/angular/angular.js:63:12

这意味着什么以及为什么它显而易见?

HTML代码:

<table class="table" ng-table="tableParams" show-filter="false" ng-class="{loadingtable : loading}" ng-show="showResults">
                <tbody>
                    <tr ng-repeat="asset in assets">
                        <td class="col-md-4" data-title="'Serial Number'" header-class="text-left" search-word-marker param="{{asset.sn}}"></td>
                        <td class="col-md-4" data-title="'Asset Name'" accesskey="" header-class="text-left" search-word-marker param="{{asset.asset_name}}"></td>
                        <td class="col-md-2" data-title="'Asset Type'" header-class="text-left">{{asset.asset_type}}</td>
                        <td class="col-md-2" data-title="'Tags'" header-class="text-left">{{asset.tags}}</td>
                        <td class="col-md-1">
                            <div class="btn-group">
                                <span>
                                    <button type="button" class="btn btn-sm btn-primary" ng-click="viewAsset(asset.sn);">{{'VIEW' | translate}}</button>
                                </span>
                            </div>
                        </td>
                    </tr>
                </tbody>
            </table>

指令代码:

Application.Directives.directive('searchWordMarker',['$log','$rootScope',function ($log,$rootScope) {
    return {
        restrict: 'A',scope: {
            param: '='
        },//template: "{{myNewString}}",//replace: false,link: function (scope,el,attr) {

            var myString = attr.param;

            var searchWord = $rootScope.searchWord;

            var regex = new RegExp(searchWord,"g");
            var myNewString = myString.replace(regex,"<B>" + searchWord + "</B>");


            el[0].innerHTML = myNewString;


        }
    }
}]);

解决方法

你试图对param中写的内容进行双向绑定(param:“=”),但这不是对象或变量,而是表达式.要么丢失{{}},要么将scope.param绑定更改为字符串:

scope: {
     param: '@'
},

(编辑:李大同)

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

    推荐文章
      热点阅读