我正在使用以下代码使用'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错误,没有任何反应。
答案 0 :(得分:0)
reapter创建新范围可以使用$ parent或ng-init访问父范围,例如: 请看这里: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>
答案 1 :(得分:0)
我不确定我理解你的问题。在我制作的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})};
});