我有一个简单的模板:
<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
也存在。
尽管出现错误,整页仍然有效,但我不想出现错误,我无法解释,因为他们可能会在以后回来咬我。
搜索我似乎无法找到有此错误的人。
答案 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>