Angular的ng-repeat在FF中工作得很好,但在Chrome中注释出来了



我已经在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,说它已经尝试遍历目标对象,但是没有对象存在……

相关内容

最新更新