【问题标题】:Unexpected compilation error when using angular js ng-attr directive使用 Angular js ng-attr 指令时出现意外的编译错误
【发布时间】:2017-01-01 01:09:27
【问题描述】:

下面的代码我用来动态地将 ng-init 属性添加到指令中。代码工作正常并得到了我预期的输出,但在运行时我得到了一些编译错误。

angular.js:13920 错误:[$parse:syntax] 语法错误:表达式 [{{dashboardOptions.contentSettingsOptions.dynamicContent.enable && 'item=tileData[ dashIndex].tiles[$index]' || '' }}]

    <tile ng-attr-ng-init="{{dashboardOptions.contentSettingsOptions.dynamicContent.enable ?'item=tileData[dashIndex].tiles[$index]' : '' }}" 
                       dashboard-item="tile" 
                       ng-repeat="tile in dashitem.TileDefinitions track by $index"
                       >

            </tile>

我得到了预期的输出

<tile ng-attr-ng-init="{{dashboardOptions.contentSettingsOptions.dynamicContent.enable ?'item=tileData[dashIndex].tiles[$index]' :'' }}" dashboard-item="tile" ng-repeat="tile in dashitem.TileDefinitions track by $index"  class="ng-scope angulardashboard-item tile" ng-init="item=tileData[dashIndex].tiles[$index]"></tile>

Plunker https://plnkr.co/edit/9PBwouxYrzeKsEqtXbht?p=preview

如何避免这个运行时错误?

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    您想通过使用 ng-init 来达到什么目的? ng-attr 用于允许 Angular 处理标准 HTML 属性。假值会使属性不显示,真值会使属性与值一起显示。

    这里你可能想做:

    <div ng-init="item = canadd ? tileData[dashIndex].tiles[$index] : null">{{message}}</div> 
    

    【讨论】:

    • 我正在根据某些条件动态添加 ng-init attr。我得到了预期的输出,但 angularjs 在运行时会产生一些编译错误以及结果。
    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多