动态添加或复制指令不会从父作用域获取变量值
Adding or duplicating directive dynamically does not get variable values from parent scope
我想弄清楚我如何能够动态地复制我的指令,同时维护我的父范围的变量。
这里有一个小提琴使它更清晰
http://jsfiddle.net/gdubdubs/FZ2hh/1/m
yModule.directive('yodirective', function ($compile) {
return {
restrict:'E',
scope:{},
link: function(scope, element, attr, ctrl){
scope.options = scope.$parent.foobs;
scope.selectedOption;
scope.addNew = function(){
var d = $compile('<yodirective></yodirective>')(scope);
element.parent().append(d);
};
},
template:'<div>' +
'<select id="werp"' +
'ng-model="selectedOption"' +
'ng-options="opt as opt for opt in options"' +
'ng-change="popDemBottles()" type="text">' +
'<option value="">select</option>' +
'</select>' +
'</div><div><a ng-click="addNew()" href="#">ADD</a></div>'
};
})
基本上,当新的指令得到显示,它不会从我的父控制器抓取值。
关于我应该如何处理的想法?此外,我是否也应该在指令上有一个控制器属性?我不太确定我需要它,也不知道什么时候用它。
谢谢!
您可以直接访问父作用域。修改这一行
'ng-options="opt as opt for opt in options"' +
'ng-options="opt as opt for opt in foobs"' +
并去掉对父
的引用JSFiddle
明白了。我只需要在编译
时添加$parentvar d = $compile('<yodirective></yodirective>')(scope.$parent);
相关文章:
- 在put方法之前从作用域获取数据
- 在函数中获取正确的作用域(不使用that=this)
- JavaScript通过名称获取当前作用域中的变量
- 为什么我的作用域函数没有获取从模型传递的数据
- 无作用域指令-如何获取数据
- 获取作用域中变量的第 n 个名称
- 角度 - 从作用域变量中获取 ng 模型名称
- AngularJs 作用域 - 如何正确从 DOM 获取作用域
- 描述从回调方法获取正确的作用域
- 无法在内容脚本Firefox Addon中获取作用域
- 使用this from函数在作用域上获取/设置角度变量
- AngularJS:Can't将变量的值从ctrl作用域获取到指令中
- AngularJS-获取一个输入值并将其传递给父指令作用域
- Angularjs:获取指令中另一个控制器内定义的控制器中作用域变量的值
- 如何在promise解析时手动将promise的结果获取到作用域变量中
- 获取套接字.来自外部作用域的IO作用域
- 动态添加或复制指令不会从父作用域获取变量值
- 从外部作用域获取函数参数计数
- 从指令中的独立作用域获取作用域变量
- 使用隔离作用域获取隐藏按钮的属性