UI网格cellTemplate editableCellTemplate不会失去焦点

时间:2016-05-27 16:14:48

标签: angularjs angular-ui-grid

我使用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>

我对所有内容进行了空检查并仍然收到错误,因此很困惑。请帮忙!

1 个答案:

答案 0 :(得分:2)

您的问题可能是以下两种情况之一:

  1. '==='操作员
    将'==='替换为'=='。 Angular期望使用'=='运算符语句。

    Why is AngularJS complaining about an unexpected token in an expression when I try to use a string?

  2. 尝试使用ng-showng-hide代替ng-if
    我之前使用ng-if遇到了问题,因为ng-if创建了一个可能导致该错误的子范围。

  3. blog

    中的详细信息