我有一个简单的模板:
<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)
如果我从 textarea
中删除 ng-disabled="!value.editable"
和 ng-model="value.dcrJavascript"
元素错误消失了。 value.dcrJavascript
存在是因为 {{value.dcrJavascript}}
在网页中提供了正确的值并且调试显示 value.editable
也存在。
尽管有错误,但整个页面仍然有效,但我不喜欢出现我无法解释的错误,因为它们稍后可能会回来咬我。
四处搜索我似乎找不到遇到此错误的人。
最佳答案
问题不在于中继器。 <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>
关于javascript - ng-repeat 中的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41599277/