簡體   English   中英

角。 生成指令內部指令。 我的范圍在哪里?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM