ng-repeat中的参数无效

时间:2017-01-11 19:34:33

标签: javascript angularjs

我有一个简单的模板:

<div ng-view class="reveal-animation" >
<br/>
    <div class="container">    
        <div class="row">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <p class="panel-title" data-i18n-attr="{title: 'common.needScriptTag'}"><strong data-i18n="common.componentJavascript">Component Javascript</strong> <em>({{ckpage.url}})</em></p>
                </div>
                <div class="panel-body">
                    <div ng-repeat="(key, value) in ckpage.components">
                        <div class="form-group col-md-12">
                            <label ng-model="value.name" data-i18n-attr="{title: 'common.needScriptTag'}">{{value.name}} ({{value.vpath}})</label>
                            <!-- It is disabled for editing if the component is not editable -->
                            <textarea ng-disabled="!value.editable" class="form-control full-width input-sm" ng-model="value.dcrJavascript" id="key" rows="10" data-i18n-attr="{title: 'common.needScriptTag'}">{{value.dcrJavascript}}</textarea>
                        </div> 
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

运行ng-repeat时出现以下错误:

Error: Invalid argument.
   at Anonymous function (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:70:389)
   at Anonymous function (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:95:497)
   at Anonymous function (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:128:379)
   at r.prototype.$digest (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:131:147)
   at r.prototype.$apply (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:134:76)
   at g (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:87:442)
   at T (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:92:50)
   at w.onload (http://7.28.108.148/iw-cc/seed/libs/angular-1.4.8/angular.min.js:93:78)

如果我从ng-disabled="!value.editable"元素中删除ng-model="value.dcrJavascript"textarea,则错误就会消失。存在value.dcrJavascript,因为{{value.dcrJavascript}}在网页中提供了正确的值,调试显示value.editable也存在。

尽管出现错误,整页仍然有效,但我不想出现错误,我无法解释,因为他们可能会在以后回来咬我。

搜索我似乎无法找到有此错误的人。

1 个答案:

答案 0 :(得分:3)

问题不在于转发器。 <textarea/>的内部文字应由ng-model处理。删除内部{{value. dcrJavascript}}。所以而不是:

<textarea ng-disabled="!value.editable" 
          class="form-control full-width input-sm" 
          ng-model="value.dcrJavascript" 
          id="key" rows="10" 
          data-i18n-attr="{title: 'common.needScriptTag'}">

          {{value.dcrJavascript}}
</textarea>

这样做:

<textarea ng-disabled="!value.editable" 
          class="form-control full-width input-sm" 
          ng-model="value.dcrJavascript" 
          id="key" rows="10" 
          data-i18n-attr="{title: 'common.needScriptTag'}">
</textarea>