AngularJS错误:undefined不是对象(评估k.childNodes)使用ui.router

时间:2014-12-29 23:18:27

标签: angularjs jsp angular-ui-router

我在JSP中使用Angular ui routerhttps://github.com/angular-ui/ui-router)。我在main.jsp中有我的模板。 JSP使用模板呈现,该模板具有使用JSTL c:foreach循环创建的表行。我有一个编辑&在我的模板中创建方法。当页面呈现时,我得到以下异常。

Error: undefined is not an object (evaluating 'k.childNodes')
g@../js/lib/vendor/angular.min.js:51:223 
<div ui-view="" class="ng-scope">

main.jsp有模板&amp;脚本如下。我在网上Example修改了一个例子。如果你看一下route1.list.html,那就是我在main.jsp模板中所拥有的,除了我使用JSTL加载。我从Angular Team看到了类似的issue。我错过了什么。但是一旦我从SPAN元素中删除ng-click,我就看不到错误。

<div class="content">
   <div ui-view></div>
</div>

<!-- Templates below -->
<script id="ports.html" type="text/ng-template">
<div>
 <button name="create" value="create" ng-click="createPort()">test</button>
 <table>
  <thead>
    <tr>
        <th>Name</th>
        <th>Port</th>
    </tr>
  </thead>
  <tbody>
    <c:forEach items="${MyForm.portsList}" var="port">
        <tr>
            <td>${port.name} <p>${port.description}</p></td>
            <td><span ng-click="editPort()">${port.id}</span></td>
        </tr>
    </c:forEach>
  </tbody>
 </table>
</div>
</script>
<script>
  var app = angular.module('MyApp',["ui.router","ui.bootstrap"]);
  app.config(function($stateProvider, $urlRouterProvider){
   $stateProvider
    .state('ports', {
        url: "/ports",
        templateUrl: "ports.html",
        controller: PortsCtrl
      })

    $urlRouterProvider.otherwise("/ports")
  })

  function PortsCtrl($scope){
    $scope.editPort = function(){
        console.log("Show ports clicked!);
    } 
    $scope.createPort = function(){
        console.log("Show ports clicked!);
    } 
 }
</script>

1 个答案:

答案 0 :(得分:0)

刚遇到这个问题,
所以我将你的代码与我的代码进行比较。

在我看来,其原因是HTML注释 所以只需删除此<!-- Templates below -->

即可

我很高兴知道它是否适合你。