我正在Angular中构建一个组合框插件,我正处于一种我无法弄清楚各种奇怪行为的地方。这是其中之一:
我有一个指令(称为linksEdit),其中包含组合框。在linksEdit指令的link函数中,我设置了以下数组:
scope.levels = [
{ 'id': 'link', 'value': 'Link'},
{ 'id': 'affiliate', 'value': 'Affiliate'},
{ 'id': 'partner', 'value': 'Partner'},
];
在该指令中,我有了combobox指令,传递了level值:
<combobox data="levels" value="cb_value" search="data.level" strict></combobox>
组合框确实有一个隔离范围:
scope: {
'data': '=data',
'search': '=search',
'value': '=value',
}
我在组合框中有代码,它根据data.level设置组合框的默认值。 linksEdit指令被调用一次(使用新的属性集),然后使用ng-repeat重复(以显示现有数据)。我在我的combobox指令的开头添加了两个console.log:
console.log(scope);
console.log(scope.data);
对于linksEdit的第一个实例(不在重复中),scope.data具有我期望的数据。在ng-repeat中,scope显示我的data属性,但scope.data显示为undefined。我不确定他们为什么表现得如此不同。