在html中我用<div godata-pagination count="{{pagination.count}}" size="{{pagination.size}}" page="{{pagination.page}}"></div>
然后我的指令在里面看:
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
};
在partial(partials / godata / pagination.html)中,我可以访问这些变量(计数,大小和页面)。对于100%的部分i,原始访问这三个变量,在此范围内没有其他变量。
但我会在功能链接中对这些变量做些什么。 如果我尝试通过attrs在函数链接中访问这些变量,它们是空的:(
出了什么问题和/或我能做什么?
更新:
scope: false
范围变量未定义。
为什么将行attrs.$observe('page', function(val) { console.log('$observe: ' + val); });
带入功能链接两个输出中...一个带有一个没有值?
再次更新:
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);
}
...带我:
但scope.pagSize
在浏览器中有值。
如果我无法访问这些属性,我如何在我的指令中使用这些属性?!
答案 0 :(得分:0)
它们与指令的范围绑定。
您可以使用scope.page
,scope.count
来访问它们。
答案 1 :(得分:0)
正如@Hristo Enev回答:当你有孤立的范围时,最好是访问
有scope.page
或scope.count
但如果您坚持使用属性
就是这样:
attrs.$observe('page', function(val) { console.log(val) })
会产生页面属性的值。
在链接函数中,您应该使用$ observe()来获取插值。