将参数传递给Angular ng-include
我正在尝试显示元素的二叉树,我使用ng-include递归地进行了遍历。
ng-init="item = item.left"
和之间有什么区别ng-repeat="item in
item.left"?在此示例中,它的行为完全相同,但是我在项目中使用了类似的代码,因此它的行为有所不同。我想是因为角度范围。也许我不应该使用ng-
if,请向我解释如何做得更好。
pane.html是:
<div ng-if="!isArray(item.left)"> <div ng-repeat="item in [item.left]" ng-include="'Views/pane.html'">
</div>
</div>
<div ng-if="isArray(item.left)">
{{item.left[0]}}
</div>
<div ng-if="!isArray(item.right)">
<div ng-repeat="item in [item.right]" ng-include="'Views/pane.html'">
</div>
</div>
<div ng-if="isArray(item.right)">
{{item.right[0]}}
</div>
<div ng-if="!isArray(item.left)">
<div ng-init = "item = item.left" ng-include="'Views/pane.html'">
</div>
</div>
<div ng-if="isArray(item.left)">
{{item.left[0]}}
</div>
<div ng-if="!isArray(item.right)">
<div ng-init="item = item.right" ng-include="'Views/pane.html'">
</div>
</div>
<div ng-if="isArray(item.right)">
{{item.right[0]}}
</div>
控制器是:
var app = angular.module('mycontrollers', []);app.controller('MainCtrl', function ($scope) {
$scope.tree = {
left: {
left: ["leftleft"],
right: {
left: ["leftrightleft"],
right: ["leftrightright"]
}
},
right: {
left: ["rightleft"],
right: ["rightright"]
}
};
$scope.isArray = function (item) {
return Array.isArray(item);
}
});
编辑:首先,我遇到指令ng-repeat比ng-if具有更高优先级的问题。我试图将它们合并,但失败了。海事组织(IMO)奇怪的是ng-repeat主导ng-
if。
回答:
将参数传递给Angular ng-include
不用了 所有ng-include
的来源都具有相同的控制器。因此,每个视图看到的都是相同的数据。
ng-init =“ item = item.left”和ng-repeat =“ item.left”中有什么区别
[ 1]
ng-init="item =
item.left"表示创建一个名为item的新实例,该实例等于item.left
。换句话说,您可以通过编写控制器来实现相同目的:
$scope.item = $scope.item.left
[2]
ng-repeat="item in item.left"
表示根据item.left
数组创建作用域列表。您应该知道其中的每个项目ng-repeat
都有其专用范围
我正在尝试显示元素的二叉树,我使用ng-include递归地进行了遍历。
我在过去的答案中发布了如何使用来显示树ng-include
。
主要部分在这里,你创建 的节点 与id
被包装<scipt>
标签及使用ng-repeat
:
<script type="text/ng-template" id="tree_item_renderer"> <ul class="some" ng-show="data.show">
<li ng-repeat="data in data.nodes" class="parent_li" ng-include="'tree_item_renderer'" tree-node></li>
</ul>
</script>
<ul>
<li ng-repeat="data in displayTree" ng-include="'tree_item_renderer'"></li>
以上是 将参数传递给Angular ng-include 的全部内容, 来源链接: utcz.com/qa/416457.html