AngularJS DOM没有看到Compile.Post范围

时间:2018-01-25 07:40:58

标签: javascript angularjs angularjs-directive

这是我的指示。它有效,但当我取消注释scope{}时 - DOM元素看不到scope.greeting

app.directive('myDir', function () {
            return {
                restrict: 'E',
                //scope:{},
                compile: function(tHtml,tAttr){
                    return {
                        post: function(scope,ele,attr){
                            scope.greeting = 'Hello!';
                        }
                    }
                }
            };

如果使用常用的方式使用链接功能,那么一切正常。 同时我不能同时使用Compile和Link 有什么问题?

1 个答案:

答案 0 :(得分:0)

使用scope属性时,您说要使用隔离范围。

由于myDir未定义greeting属性,因此当您取消注释scope时,您将获得未定义的greeting。使用//scope: {}您正在使用父作用域(我猜,它具有greeting属性)。

请参阅此What is the difference between '@' and '=' in directive scope in AngularJS?