Javascript 如何访问“$scope.search.value”?

Javascript 如何访问“$scope.search.value”?,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我正在用ionic框架开发一个应用程序 我在谷歌上找到了爱奥尼亚搜索栏的一个指令,它很有效 指令('ionSearch',函数(){ 返回{ 限制:'E', 替换:正确, 范围:{ getData:“&源”, 型号:“=?”, 搜索:'=?过滤器' }, 链接:函数(范围、元素、属性){ attrs.minLength=attrs.minLength | | 0; scope.placeholder=attrs.placeholder | |“”; scope.search={value:''

我正在用ionic框架开发一个应用程序

我在谷歌上找到了爱奥尼亚搜索栏的一个指令,它很有效

指令('ionSearch',函数(){
返回{
限制:'E',
替换:正确,
范围:{
getData:“&源”,
型号:“=?”,
搜索:'=?过滤器'
},
链接:函数(范围、元素、属性){
attrs.minLength=attrs.minLength | | 0;
scope.placeholder=attrs.placeholder | |“”;
scope.search={value:''};
if(属性类)
元素addClass(属性类);
if(属性源){
作用域$watch('search.value',函数(newValue,oldValue){
如果(newValue.length>attrs.minLength){
getData({str:newValue}).then(函数(结果){
scope.model=结果;
});
}否则{
scope.model=[];
}
});
}
scope.clearSearch=函数(){
scope.search.value='';
};
},
模板:“”+
'' +
'' +
'' +
''
};
})

找到{tests.length}个结果

{{search.value}json}

..... ...
您的指令有一个独立的作用域,即您不能从外部直接访问指令的作用域变量

幸运的是,
search
变量已经通过
search:'=?filter'
绑定到外部范围。这意味着,如果指令具有filter属性,则此变量是双向绑定的

因此,如果您像下面这样增强HTML

 <ion-search class="search-wrapper-light" placeholder="Search..." min-length="1" model="results" source="getExamsByName(str)" filter="search"></ion-search>


然后外部范围变量
search
将保存指令内部的搜索范围变量。

当您在指令中使用
=?filter
时,
=
意味着您在指令中使用双向数据绑定,但是
它可以是可选变量&第三部分是
过滤器,用于属性名称。您应该在指令元素中包含带有一些值的
过滤器
属性,并且您的控制器应该定义类似
$scope.search={}
的值,以便最初它将是一个对象

标记

<ion-search class="search-wrapper-light" placeholder="Search..." min-length="1" 
  model="results" source="getExamsByName(str)" filter="search">
</ion-search>


您已在隔离作用域上定义了
搜索
属性。这不应该是
source

您想访问从指令..外部指令elememt创建的值吗?@PankajParkar是的,我想在搜索栏下显示它。就像angularjs教程中显示的双向绑定一样。