ng-repeat变量未被发送到控制器

时间:2015-03-17 16:58:59

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

我有一个ng-repeat,它从JSON调用中获取数据并在页面上构建几个小部件。每个小部件都有一个表单按钮,用于获取生成所选小部件的数据对象的id和名称。

{{term.term}}在HTML中编译为"tablets"

但是,在我的控制器中,它所读取的字词为{{term.term}}而不是"tablets"


<div ng-repeat="term in terms"
     class="col-md-6 col-lg-4 term-section">

    <div class="term_tag">
        <a href="" ng-click="ticker.openTagModal('{{term.term}}')">
            <div class="tag">
                {{term.term}}
            </div>
        </a>
    </div>

Chrome检查器中的HTML如下所示: enter image description here

现在我的Controller中的openTagModal函数:

// Open the edit account modal:
this.openTagModal = function(term) {
    console.log('term = '+term);
    $scope.main.modal_terms = true;
    $scope.main.modal = true;
};

^这里的术语应该=“平板电脑”,但它会读取: enter image description here

知道为什么会这样吗?我还没有使用Directive,只是一个ng-repeat div,可能就是这样吗?

1 个答案:

答案 0 :(得分:1)

尝试删除ng-click指令中的大括号,例如:

ng-click="ticker.openTagModal(term.term)"

ng-click指令采用角度表达式。 HTML中的Angular表达式通常包含在{{}}中,以将它们定义为表达式,但是ng-click并不需要它们,因为它已经假定它采用表达式。