我使用angular-ui-grid并尝试显示几个单元格模板的组合。我需要一些网格单元格来根据实体的属性更改类/颜色。我需要其他单元格来显示一个可以打开/关闭的按钮,只有当行实体是“属性”时才会显示某些行和单元格。我想出了一个cellTemplate和一个editableCellTemplate的组合来完成这个。一切似乎都在工作,除非我用输入字段点击单元格的焦点,它不会失去焦点,并且我得到错误语法错误:令牌' undefined'不是表达式[row.entity []的列null的主表达式,从[row.entity []开始。当我编辑单元格时,它变成输入模式,我可以输入数据,当我点击它时,它确实不会失去焦点,它会保持编辑模式。如果我移动网格上的滚动条,它将失去焦点
继承我的手机模板:
<div ng-if="row.entity.resultType === 'ATTRIBUTE' && row.entity[col.colDef.field] == 'Pass'" ng-class="grid.appScope.getClassFromTemplate(row, col)">
<button class="ui-grid-cell-btn" type="button" ng-click="grid.appScope.togglePass(row, col)" >
<span class="glyphicon glyphicon-ok green"></span>
</button>
</div>
<div ng-if="row.entity.resultType === 'ATTRIBUTE' && row.entity[col.colDef.field] != 'Pass'" ng-class="grid.appScope.getClassFromTemplate(row, col)">
<button class="ui-grid-cell-btn" type="button" ng-click="grid.appScope.togglePass(row, col)" >
<span class="glyphicon glyphicon-remove red"></span>
</button>
</div>
//what should this template look like?... should be just standard template to display ui grid data
<div ng-if="row !== null && row.entity.resultType !== 'ATTRIBUTE'" class='ui-grid-cell-contents'>
{{MODEL_COL_FIELD}}
</div>
和我的可编辑cellTemplate
<div ng-if="row.entity.resultType === 'ATTRIBUTE' && row.entity[col.colDef.field] == 'Pass'" class='ui-grid-cell-contents'>
<button class="ui-grid-cell-btn" type="button" ng-click="grid.appScope.togglePass(row, col)" >
<span class="glyphicon glyphicon-ok green"></span>
</button>
</div>
<div ng-if="row.entity.resultType === 'ATTRIBUTE' && row.entity[col.colDef.field] != 'Pass'" class='ui-grid-cell-contents'>
<button class="ui-grid-cell-btn" type="button" ng-click="grid.appScope.togglePass(row, col)" >
<span class="glyphicon glyphicon-remove red"></span>
</button>
</div>
<div ng-if="row.entity !== null && row.entity.resultType !== 'ATTRIBUTE'" >
<form name="inputForm">
<input style="background-color: white; !important; color: black !important" type='text' ng-class="'colt' + col.uid" ui-grid-editor ng-model='MODEL_COL_FIELD'>
</form>
</div>
我对所有内容进行了空检查并仍然收到错误,因此很困惑。请帮忙!
答案 0 :(得分:2)
您的问题可能是以下两种情况之一:
'==='操作员
将'==='替换为'=='。 Angular期望使用'=='运算符语句。
Why is AngularJS complaining about an unexpected token in an expression when I try to use a string?
尝试使用ng-show
或ng-hide
代替ng-if
我之前使用ng-if
遇到了问题,因为ng-if
创建了一个可能导致该错误的子范围。
此blog
中的详细信息