如何在angular.js指令中访问作用域变量
How to access scope variables from within a directive in angular.js?
我已经定义了自己的自定义过滤器,以便在angular.js web应用程序中搜索帖子:
app.filter('myfilter', function() {
return function(postList, term) {
var out = [];
if(!postList) return out;
if(!term) return postList;
var i;
for(i = 0; i < postList.length; i++){
if(postList[i].title.indexOf(term) >=0){
out.push(postList[i]);
}
if($scope.isContentFilterOn.checked){
if(postList[i].text.indexOf(term) >=0){
out.push(postList[i]);
}
}
}
}
return out;
}
});
当然上面不会工作,因为我不能访问范围变量,简单地传递$scope
也不起作用。我该怎么做呢?有什么简单快捷的方法吗?
编辑:source http://plnkr.co/edit/G9BFBTaKdUmki8MJegrn?p=catalogue
您可以将任意数量的作用域成员直接传递给过滤器(以冒号分隔)…
myfilter:filterTerm:isContentFilterOn
更新过滤器方法签名…
function(postList, term, isContentFilterOn) {
你想怎么用就怎么用……
if (isContentFilterOn) {
哦,别忘了,你可能需要在作用域中将isContentFilterOn定义为false,这样它就可以立即用于过滤器…
$scope.isContentFilterOn = false;
更新普朗克在这里显示我的意思…
http://plnkr.co/edit/vPTBws0JBpwvKY0ywCPC?p =预览
相关文章:
- 从ng模板访问作用域
- 插槽:访问作用域变量
- 以新模式访问作用域形式ng repeat
- 从多个控制器上的指令访问作用域的正确方法
- 从另一个模块访问作用域的指令
- 从AngularJS中的筛选器访问作用域变量
- 使用UI路由器从AngularJS中的根控制器访问作用域值
- 如何从angular中的HTML访问作用域中的对象
- 如何从另一个控制器中的指令访问作用域
- AngularJS指令绑定链接:无法访问作用域变量
- AngularJS从外部访问作用域ng-repeat
- 如何在ES6风格的Angular控制器中访问作用域变量
- 可以't从指令模板访问作用域
- 按名称从指令访问作用域变量,避免使用eval
- 隔离作用域不能访问作用域链中较高的变量
- 如何从编译器函数指令访问作用域
- Angular访问作用域属性
- Angular的ng-bind没有访问作用域变量
- 不能在一个angular控制器的多个部分HTML场景中访问作用域变量的更新值
- 在AngularJS中,无法从控制器的指令访问作用域