剣道データグリッドディレクティブを使用し、グリッド設定オプションのテンプレートを持つTypeCtrl ES6クラスの角度コントローラーがあります。グリッドのテンプレートでは、メソッドをTypeCtrlクラスから取得します。テンプレートの行内のスパンにonclickイベントまたはng-clickイベントをアタッチする必要があります。ただし、Clickでトリガされる必要がある機能は、TypeCtrlクラスに属します。どのように私は剣道グリッドのdataboundイベント内でTypeCtrlのコンテキストを取得できますか?私はここでグリッドデータバインドイベントのonclick/ng-clickイベントを添付
は私が持っているものである私がいることがわかり、私はデータバインドされたイベント内
//Grid options defined in Class TypeCTrl along with openSub method
class TypeCtrl{
constructor() {}
$onInit() {
this.gridOptions = {
name: 'test',
dataBound: function(e) {
//Find the span and on click , attach the typectrl controller's opensub method
let grid = this
let item = grid.tbody.find('#testClick');
let value = item.innerHTML;
item.on('click', this.openSub(value);
}
columns: [{
field: 'subscriptionName',
hidden: true,
groupHeaderTemplate: function(dataItem) {
let temp;
let sname = dataItem.value;
if (sname) {
temp = '<span id="testClick">' + sname + '</span>';
}
return temp;
}.bind(this)
}, {
field: 'name',//Todo: show icons
title: 'name'
}, {
field: 'version',
title: 'version'
}]
}
}
openSub(name) {
alert('thisis a box');
}
}
TypeCtrl.$inject = ['$scope'];
angular.module('core').controller('TypeCtrl', TypeCtrl);
export default TypeCtrl;
をtehのコントローラメソッドにアクセスすることができますどのようにように、私に知らせてください、ここで剣道グリッドに「これ」のポイントことがわかりspanタグをクリックすると、このコンテキストは失われ、opensubメソッドは呼び出されません。行テンプレートをクリックしたときにopensubメソッドにアクセスすることにしました。これはdataBound関数で行うことができますか?
またはその他の方法?
はい、要素がテンプレートで動的に生成されるため、このコンテキストはコントローラを取得していません。私はすでにテンプレート内に "this"を持っていました。 Howverは角度が「これ」について知らないので、 – looneytunes