Javascript 将数据传递到ng click中的模型

Javascript 将数据传递到ng click中的模型,javascript,angularjs,angularjs-ng-repeat,ng-repeat,angularjs-ng-click,Javascript,Angularjs,Angularjs Ng Repeat,Ng Repeat,Angularjs Ng Click,我正在显示数据库中的所有文章,并为其创建了一个简单的文本搜索 <input ng-model="searchText" placeholder="Search for articles" class="search-text"> 我正在从搜索文本中过滤内容 <section class="articles" ng-repeat="contentItem in content | filter:searchText"> 现在我尝试的是从我的数据库中获得带有类别和

我正在显示数据库中的所有文章,并为其创建了一个简单的文本搜索

<input ng-model="searchText" placeholder="Search for articles" class="search-text">

我正在从搜索文本中过滤内容

<section class="articles" ng-repeat="contentItem in content | filter:searchText">

现在我尝试的是从我的数据库中获得带有类别和标记的按钮,并能够根据按钮值过滤内容

<span ng-repeat="category in categories">
  <button ng-click="searchText = '{{category.local.name}}'" class="btn btn-primary">{{ category.local.name }}</button>
</span>

{{category.local.name}
上面的代码不起作用,但例如,如果我取出ng repeat并自己键入所有类别,它将起作用:

<span>
  <button ng-click="searchText = 'some text'" class="btn btn-primary">Some text</button>
</span>

一些文本
我的问题是如何将内容从搜索输入和按钮传递到筛选方法

以下是完整的代码:

<div class="container">
 <h1>List of articles</h1>
<section class="search-items">
<input ng-model="searchText" placeholder="Search for articles" class="search-text">
<div class="row">
  <div class="col-sm-6">
    <h6>Search based on categories:</h6>
    <span ng-repeat="category in categories">
      <input type="button" ng-click="searchText = '{{ category.local.name }}'" value="{{ category.local.name }}" class="btn btn-primary">
    </span>
  </div>
  <div class="col-sm-6">
    <h6>Search based on tags:</h6>
    <span ng-repeat="tag in tags">
      <input type="button" ng-click="searchText = '{{tag.local.name}}'" value="{{ tag.local.name }}" class="btn btn-primary">
    </span>
  </div>
</div>
</section>
<section class="articles" ng-repeat="contentItem in content | filter:searchText">
  <article class="well">
    <h3>{{ contentItem.local.title }}</h3>
    <p>{{ contentItem.local.content }}</p>
    <span><b>Article author: {{ contentItem.local.author }}</b></span><br/>
    <span class="label label-primary">{{ contentItem.local.categories.category }}</span>
    <span class="label label-primary">{{ contentItem.local.tags.tag }}</span>
  </article>
 </section>
</div>

物品清单
基于类别的搜索:
基于标记的搜索:
{{contentItem.local.title}
{{contentItem.local.content}

文章作者:{{contentItem.local.author}}
{{contentItem.local.categories.category} {{contentItem.local.tags.tag}}
angular.module('myApp',[])
.controller('thingscocontroller',function(){
var ctrl=this;
ctrl.things=['thing1','thing2','other things']
ctrl.searchText=“某物”
})

{{thing}}
{{thingCtrl.searchText}
angular.module('myApp',[])
.controller('thingscocontroller',function(){
var ctrl=this;
ctrl.things=['thing1','thing2','other things']
ctrl.searchText=“某物”
})

{{thing}}

{{thingCtrl.searchText}
不清楚要问什么。你说“我可以看到,如果我删除ng重复并自己键入一些文本,它将工作”,你能详细说明这一点吗。关于ng点击,它需要一个
角度表达式
,这个表达式是根据作用域解析的,因此不需要{{}}内插括号。我已经编辑了这个问题,希望我现在更精确。谢谢你的帮助此外,我也尝试过不使用{{},但据我所知,我无法在ng-repeat中传递变量。您可以只使用
ng click=“searchText=tag.local.name”
,如果您有
{searchText | json}
在视图中,您应该看到searchText被更新为tag.local.name的值,该值是根据重复元素的作用域解析的。我会尽量给出一个简单的示例答案。谢谢你也解决了这个问题。在编辑后更容易阅读。不清楚要问什么。你说“我可以看到,如果我删除ng重复并自己键入一些文本,它将工作”,你能详细说明这一点吗。关于ng点击,它需要一个
角度表达式
,这个表达式是根据作用域解析的,因此不需要{{}}内插括号。我已经编辑了这个问题,希望我现在更精确。谢谢你的帮助此外,我也尝试过不使用{{},但据我所知,我无法在ng-repeat中传递变量。您可以只使用
ng click=“searchText=tag.local.name”
,如果您有
{searchText | json}
在视图中,您应该看到searchText被更新为tag.local.name的值,该值是根据重复元素的作用域解析的。我会尽量给出一个简单的示例答案。谢谢你也解决了这个问题。在编辑后更容易阅读。