我正在尝试生成多个 expressionSelect
我的指令 expressionAuthoring
指令,在这种情况下,只需单击一下即可。我可以得到 expressionSelect
模板出现,但我的范围内的任何东西都不会随之而来。我已经搜索并看到了各种示例/类似的问题,但没有一个是我能够直接从中提取解决方案并让我自己工作的。想法?
我没有使用此处显示的以外的 Controller
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 中的某处
当我在“父”指令中生成它时
最佳答案
对于任何好奇的人,我可以通过添加 scope.$apply();
element.bind('click', function () {
var selection = angular.element(document.createElement('expression-select'));
var el = compile(selection)(scope);
scope.$apply();
element.append(el);
});
关于javascript - Angular 。在指令中生成指令。我的示波器在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069697/