所以我有一个自定义指令,名为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
为什么?
是否有可能以这种方式获取定义属性的指令的值?
由于
答案 0 :(得分:1)
我猜项目未在指令的父范围内定义。您在以下帖子(AngularJS Directive Passing String)
中解释了两个解决方案您希望将项目作为字符串传递并在其周围添加单引号(默认情况下,它被评估为角度表达式)
<div custom="'item'" gutter="10"><!--content--></div>
或者更改指令配置,以便将自定义属性视为字符串: 范围:
{ itemSelector: '@custom', gutter: '=' }
希望这有帮助