这里有两个想法:
1)指令可以共享与视图的控制器范围。因此,您可以在您的控制器中实现父/子关系,并使指令反映控制器的状态。这种方法有几个缺点:它严格地将您的指令绑定到控制器,并且很难在同一页面上多次使用相同的指令。这些downers是重用的一大障碍!
2)指令可以利用html模板,它允许很多表达。因此,或许父/子关系可以在一个指令中表示,像这样的:
myapp.directive('mydirective', function() {
return {
restrict: 'E',
replace: true,
scope: {
parentData: '@',
childData: '@'
},
template:
'<div ng-model={{parentData}}>' +
'<div ng-model={{childData}}>' +
'</div>' +
'</div>',
link: function (scope, element, attrs) {
//other behaviors go here
}
}
});
上面的指令中的每个实例都可以有其独特的父母和孩子通过分离范围结合,因此它可以跨多个使用控制器/视图。上面的模板可以像你需要的那样复杂。如果模板比这更复杂,最好的做法是从一个单独的html文件中加载它。
希望这会有所帮助。
这是不是很清楚你要在这里做什么。你能发布一些消息吗? – 2014-10-07 20:34:49