1

我的模块的控制器有一个属性作为我在其中组装 HTML 的字符串。

在指令中,我尝试将 HTML 字符串分配给工具提示的属性,即“工具提示-html-不安全”。

我能够将整个元素分配给这个工具提示属性。如何访问父范围的属性?

请查看我的 plunkr 以获取给出的代码: http ://plnkr.co/edit/rTq8zrKdc3qABrc9Tde6?p=catalogue

4

2 回答 2

1

两件事情:

  1. 您需要更新 $scope.contentHTML 的值(仅设置 var 值不会更新 $scope 值)。如果您只想从指令中读取该值,可以在链接函数中使用scope.contentHTML.
  2. 如果您希望能够从指令中设置父作用域的 contentHTML 属性,您可以在指令中使用 scope 属性并将值设置为“=”。然后您可以从scope链接功能中访问它。例如:

    app.directive("tooltipView", function($compile) {   
        return {
            restrict: "AE", 
            scope: {
                tooltipView: "="
            },
            link: function(scope, element, attrs) {
                 console.log(scope.tooltipView);
            }
        };
    });
    

如果您计划"="在指令中使用符号值作为范围(上面的数字 2),您还需要告诉您的指令在 HTML 中映射到哪个范围值。所以: <p tooltip-view="contentHTML">Hello {{name}}!</p>将你的链接函数中的 scope.tooltipView 映射到你的控制器中的 $scope.contentHTML 。

查看基于您的 plunkr:http ://plnkr.co/edit/HskBFNRW8mC8QmVWr3hP

于 2014-02-26T09:22:18.910 回答
0

要从当前范围访问父范围,您可以执行以下操作:

scope.$parent.someValue
于 2014-02-26T09:24:43.743 回答