AngularJS组件 - 函数绑定

时间:2017-11-17 20:57:47

标签: javascript angularjs components

我写了一个表组件:

dt.train2[, language_string := ifelse(language == "english", 
                                      1, 
                                      ifelse(language == "french", 
                                             2, 
                                             ifelse(language == "spanish",3)]

我将组件定义为:

<table ng-model="$ctrl.model" class="table" md-progress="promise">
<thead class="thead">
    <tr>
        <th class="theader">ID</th>
        <th class="theader">A</th>
        <th class="theader">Actions</th>
    </tr>
</thead>
<tbody>
    <tr md-row ng-repeat="row in $ctrl.data track by $index">
        <td width="15%" class="trow">{{row.id}}</td>
        <td width="15%" class="trow">{{row.a}}</td>
        <td width="15%" class="trow">
            <md-button ng-click="$ctrl.edit({x: row.id, y: row.a})"></md-button>                    
        </td>
    </tr>
</tbody>

我将新组件称为:

.component('tablesample', {
        require: {},
        templateUrl: 'Components/templates/tableSample.html',
        bindings: {
            data: '=',
            model: '=',
            edit: '&',
        },
        controller: function ($log) {
            var tbl = this;
            tbl.$onInit = function () {
            };
            tbl.$onChanges = function () {
            };
        }
    })

编辑功能定义为:

<tablesample data="tableData" model="selectedRow" edit="editFunction()"></tablesample>

日志语句总是显示'undefined'而且我不知道为什么,row.id被填充,如果我转储它我可以看到1,2,3等....在editFunction里面我做一个http get因此,如果x未定义,则调用将失败。

谁能看到我做错了什么?

由于 d

1 个答案:

答案 0 :(得分:0)

我不得不改变:

<tablesample data="tableData" model="selectedRow" edit="editFunction()"></tablesample>

为:

<tablesample data="tableData" model="selectedRow" edit="editFunction(id,a)"></tablesample>

由于 Docmur