当引用父作用域时,ng-repeat内的角度表达式未呈现

时间:2015-12-17 17:54:30

标签: javascript angularjs angularjs-ng-repeat expression directive

所以我正在研究Angular中的弹性搜索实现。到目前为止这么好,但我遇到了一个奇怪的情况。每个结果都有一个可由用户生成的关联标签。

这是我的表格&输入:

<form ng-submit="search($event)" class="queryBuilder ng-pristine ng-valid">
    <input type="text" ng-model="searchQuery" class="ng-pristine ng-untouched ng-valid">
</form>

结果显示正常,标签也是如此。当我点击标签时,问题就出现了。最初,问题是在重复内部时,他们无法访问上述searchQuery模型,因此我只是将其更改为目标$parent.searchQuery,但只要我这样做就可以解决这个问题表达式item.tag不再起作用。现在它输出实际的花括号和所有。

<button ng-repeat="item in items" ng-click="$parent.searchQuery = $parent.searchQuery + ' {{item.tag}}'; search();" class="tag ng-binding ng-scope">Tag Name</button>

我是Angular的新手,已经使用了jQuery十亿年,所以如果我错过了一些非常基本的东西,我会提前道歉。我一直在搜索并找到范围相关的材料,但不能找到ng-repeat与目标父范围发生冲突的表达式。有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在控制器上创建一个方法:

$scope.clickItem = function(item){
    $scope.searchQuery += ' ' + item.category;
    $scope.search();
};

查看:

<button ng-repeat="item in items" ng-click="clickItem(item)" class="tag">foundation</button>