我已经在jsp中获得了这段代码(缩小了一点):
<div class="popup default" ng-app="interview" ng-init="employeeId = '${employee.id}'; findTimelineEntries(); getAddInterviewRights(); getEditInterviewRights();" ng-controller="TimelineCtrl">
<div class="box-wrapper edit" ng-show="hasAddInterviewRights">
<div class="box">
<div class="pointer"></div>
<div class="box-content">
<div class="icon close" ></div>
<div class="form-item">
<!-- cut -->
</div>
</div>
<div class="form" id="convo">
<div class="form-item">
<!-- cut -->
</div>
<div class="form-break"></div>
<div class="form-item">
<div class="label">
<div class="fi-content">
Currently open goals
</div>
</div>
<div class="value">
<div class="editable" ng-repeat="goal in interviewForm.goals" ng-click="openEditable($event.target)">
<div class="icon edit"></div>
<div class="icon close" ng-click="closeEditable($event.target)"></div>
{{goal.shortDescription}}
<div class="ed-content">
<div class="form-item">
<div class="label">
<div class="fi-content">
Deadline
</div>
</div>
<div class="value">
<input type="text" ng-model="goal.dueDate" ui-date="dateOptions" size="15" />
</div>
</div>
<div class="form-item">
<div class="label">
<div class="fi-content">
Status
</div>
</div>
<div class="value select">
<select ng-model="goal.status" ng-options="code as description for (code, description) in goalStatusses"></select>
</div>
</div>
<div class="form-item">
<div class="label">
<div class="fi-content">
Comment
</div>
</div>
<div class="value">
<div class="fi-content">
<table class="plain">
<tr ng-repeat="progress in goal.progresses">
<td>{{progress.progressDate | date: 'dd-MM-yyyy'}}</td>
<td>{{progress.progressReport}}</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="editable">
<div class="icon add"></div>
<div class="icon close" ng-click="closeEditable($event.target)"></div>
Add a new goal
它在Firefox(20.0.1)中正常工作:它显示了2个当前目标和添加新目标的选项。但不知何故,相同的jsp不工作,在Chrome(27),因为它只是显示选项,以添加一个新的目标
当查看与开发人员工具的HTML,我看到的ng-repeat被Chrome注释掉,但为什么它会这样做??
我在谷歌上搜索了ng-repeat被注释掉,但答案是,使用ng-repeat的div不在ng-controller的div内,但这肯定不是我的代码
的情况取自开发人员工具的HTML:
<div class="value">
<!-- ngRepeat: goal in interviewForm.goals -->
<div class="editable">
<div class=icon add"></div>
<div class=icon close" ng-click="closeEditable($event.target)" style="dispay:none;"></div>
Add new goal
我已经检查了其他浏览器,它在Safari(5.1)中不起作用,也不能在IE8中工作,尽管一个同事说它在他的IE9中起作用
好了,我终于找到了问题所在,它实际上是一个
$('.select .option').click(function() {
var choice = $(this).text();
etc.
必须被改成
$(".select #itemAddSelector").change(function(){
var selectedOption = $(this).children(":selected");
var choice = $(selectedOption).text();
etc.
作为从控制器中检索目标的函数从未在Chrome中调用,因为Chrome不处理jQuery在选项上的单击事件(在Chrome中选择选项元素上的单击事件)。所以它只是在HTML中注释了ng-repeat,说它已经尝试遍历目标对象,但是没有对象存在……