[英]Angular. Generate directive inside directive. Where is my scope stuff?
我试图在我的expressionAuthoring
指令中生成多个expressionSelect
指令,在这种情况下,只需单击一下即可。 我可以让expressionSelect
模板出现,但是没有任何我的范围内容会附带它。 我已经搜索并查看了各种示例/类似的问题,但是我没有能够直接从解决方案中获取并自己开始工作。 想法?
我没有使用此处显示的控制器
app.directive('expressionAuthoring', ['$compile', function (compile) {
return {
restrict: 'E',
template: '<div></div>',
link: function (scope, element, attrs) {
element.bind('click', function () {
var selection = angular.element(document.createElement('expression-select'));
var el = compile(selection)(scope);
element.append(el);
});
}
};
}]);
app.directive('expressionSelect', [ function () {
return {
restrict: 'E',
template: '<select ng-model="expressionSelect" ng-options="e.name for e in expressionSelect"></select>',
link: function (scope, element, attrs) {
scope.expressionSelect = [
{ name: 'TestName1', value: 'TestValue1' },
{ name: 'TestName2', value: 'TestValue2' },
{ name: 'TestName3', value: 'TestValue3' }
];
}
};
}]);
当我只是将<expression-select></expression-select>
放在我的html中
当我在'parent'指令中生成它时
对于任何好奇的人,我都可以通过添加scope.$apply();
来实现这一点scope.$apply();
element.bind('click', function () {
var selection = angular.element(document.createElement('expression-select'));
var el = compile(selection)(scope);
scope.$apply();
element.append(el);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.