指令链接属性无效。
指令链接属性无效。
在HTML中,我使用以下代码调用指令:然后我的指令会查找内部内容:
function link(scope, element, attrs) { console.log('attrs: ' + attrs.size); scope.pagCount = attrs.count; scope.pagPage = attrs.page; } return { restrict: 'A', transclude: true, scope: { count: '@', size: '@', page: '@' }, templateUrl: 'partials/godata/pagination.html', link: link };
在partials/godata/pagination.html中,我可以访问这些变量(count,size和page)。在partial中,我只能访问这三个变量,没有其他变量。但是在函数link中,如果我尝试通过attrs来访问这些变量,它们是空的。出了什么问题?我该怎么办?\n更新:\n并且使用scope: false
,scope变量是未定义的。为什么在函数link中的attrs.$observe(\'page\', function(val) { console.log(\'$observe: \' + val); });
会有两个输出,一个有值,一个没有值?\n再次更新:\n
function link(scope, element, attrs) { console.log('scope: ' + scope.size); console.log('scope: ' + scope); console.log('attrs: ' + attrs.size); console.log('attrs: ' + attrs); attrs.$observe('size', function(size) { console.log('$observe: ' + size); if(size) { scope.pagSize = size; } }); console.log('after observe; pagSize: ' + scope.pagSize); }
...给我带来:\n但是scope.pagSize
在浏览器中具有值。如果我无法访问它们,我该如何在我的指令中使用这些属性?