AngularJS:在隔离范围内获取属性定义指令的值

时间:2014-05-14 11:27:59

标签: javascript angularjs

所以我有一个自定义指令,名为eg custom,如下所示:

app.directive('custom', function()
{
    return {

        restrict: 'A', 
        scope: { itemSelector: '=custom', gutter: '=' }, 
        link: function(scope, element, attrs){
            console.log("IS: " + scope.itemSelector);
            console.log("GUTTER: " + scope.gutter);
        }
    }
}

通过HTML调用,如下所示

<div custom="item" gutter="10"><!--content--></div>

有人可以建议scope.gutter === '10' scope.itemSelector === undefined为什么?

是否有可能以这种方式获取定义属性的指令的值?

由于

1 个答案:

答案 0 :(得分:1)

我猜项目未在指令的父范围内定义。您在以下帖子(AngularJS Directive Passing String

中解释了两个解决方案
  • 您希望将项目作为字符串传递并在其周围添加单引号(默认情况下,它被评估为角度表达式)

    <div custom="'item'" gutter="10"><!--content--></div>

  • 或者更改指令配置,以便将自定义属性视为字符串: 范围:

    { itemSelector: '@custom', gutter: '=' }

希望这有帮助