【发布时间】:2014-08-18 20:52:04
【问题描述】:
我正在尝试将一个角度对象包装到一个模板中,然后我应该能够使用指令对其进行实例化。在这种情况下,每个指令都是一种小部件。
问题在于我正在编写的指令基于相同的类型,因此在实例化指令时,我会在全局范围内跟踪小部件对象。我有以下内容:
.directive('lineChart', ['$interval', '$compile', 'widgetDataService',
return {
restrict: 'E',
scope: false,
templateUrl: 'templates/lineChart.html',
link: function(scope, elm, attrs) {
var obj = {
guid: attrs['guid'],
datasource: undefined
}
scope.widgets.push(obj)
...
那么在模板中我可以这样做:
...
k-data-source="widgets[{{index}}].datasource"
...
这里的想法是该指令的后续使用将导致顺序初始化模板 - 因此每个模板都会获得其各自的索引。但是,这不起作用。如果我不止一次地使用一个指令,所有实例化的模板都会获得最后一个索引,这可能意味着 Angular 将实例分隔在不同的阶段。
有没有办法使用全局对象来跟踪指令的底层对象,但仍然让它们在运行时传入不同的索引?
【问题讨论】:
标签: javascript angularjs angularjs-directive