当使用ng-include构建树时,我的'ng-click'不起作用

When building a tree using ng-include, my 'ng-click' is not working

本文关键字:我的 不起作用 ng-click ng-include 构建      更新时间:2023-09-26

我用'ng-include'用下面的代码构建一个树,它看起来很好:

<script type="text/ng-template" id="tree_node.html">
    <a ng-click="select(this, data, $event)">{{data.name}}</a>
    <ul>
        <li ng-repeat="data in data.children track by $index" ng-include="'tree_node.html'"></li>
    </ul>
</script>
<div>
  <ul>
    <li ng-repeat="data in venueTree track by $index" ng-include="'tree_node.html'"></li>
  </ul>
</div>

问题是,当点击{{data.name}}时,'select'函数没有在我的控制器中调用。我没有javascript错误,只是什么也没发生。

reapter创建新的作用域,您可以使用$parent或ng-init访问父作用域,如ie:请看这里:http://jsbin.com/xowub/3/edit

html:

<li ng-repeat="data in venueTree track by $index" ng-include="'tree_node.html'" ng-init="parent=this"></li>

脚本:

<script type="text/ng-template" id="tree_node.html">
    <a ng-click="parent.select(this, data, $event)">{{data.name}}</a>
    <ul>
        <li ng-repeat="data in data.children track by $index" ng-include="'tree_node.html'"></li>
    </ul>
</script>

我不太明白你的问题。在我制作的这个Plunk中,ng-click似乎工作得很好。

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.venueTree = [{children:[{name:'one'},{name:'dos'}]},{children:[{name:'drei'},{name:'fyra'}]}];
  $scope.select = function(a,b,c){alert(b.name); console.log({a:a, b:b, c:c})};
});