Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与指令的链接函数和隔离作用域的奇怪交互_Javascript_Angularjs - Fatal编程技术网

Javascript 与指令的链接函数和隔离作用域的奇怪交互

Javascript 与指令的链接函数和隔离作用域的奇怪交互,javascript,angularjs,Javascript,Angularjs,我有这个指示: ngModule.directive('customer', function () { return { scope: {}, link: function (scope) { scope.meta = 'bar'; } }; }); 和模板: <h1>Customers</h1> <div data-customer> <div>Met

我有这个指示:

ngModule.directive('customer', function () {
    return {
        scope: {},
        link: function (scope) {
            scope.meta = 'bar';
        }
    };
});
和模板:

<h1>Customers</h1>
<div data-customer>
  <div>Meta: {{ meta }}</div>
</div>
我希望“Meta:bar”出现在模板中。但是,只有“Meta:”出现。请注意,如果我设置“scope:true”,它确实会出现


当我使用隔离作用域时,为什么该值不能正确绑定?

该绑定引用控制器作用域。如果要显示附加到指令范围的内容,请将其插入指令的模板中,如下所示:

ngModule.directive('customer', function () {
    return {
        scope: {},
        link: function (scope) {
            scope.meta = 'bar';
        },
        template: '<div>Meta: {{ meta }}</div>'
    };
});

此指令使用隔离作用域,虽然从技术上讲它是控制器作用域的子作用域,但它与控制器作用域是隔离的。

隔离作用域被隔离到它们附加到的单个DOM节点。隔离作用域不适用于未使用template、templateUrl或$compile指令编译的html。所显示的示例不清楚是否是这种情况,但假设因为指令没有这些问题