如何从 ui-grid in angularjs 中的单元格模板调用函数?
How to call a function from cell template in ui-grid in angularjs?
我在 angularJs(1.6) 中有一个控制器正在使用 ui-grid。
问题是只有一个单元格模板。我想从函数中获取它的值。我尝试创建一个函数并尝试使用 grid.appScope.function 调用它。但它没有用。
我也尝试将我的功能与 vm 一起使用。但是没有用。
谁能帮我解决这个问题?
这是我的控制器代码:
(function () {
'use strict';
define([
'angular'
], function (angular) {
function SelectToolController($scope, $timeout, $filter, uiGridConstants) {
var vm = this,
_gridApi,
_cellTemplate,
_columnDefs,
_starRatingTemplate,
_starRatingColumn,
_starEnable;
};
_starRatingTemplate = [
'<div class="opr-star-rating" >',
'<opr-star-rating rating-percentage="getRating()">',
'</opr-star-rating>',
'</div>'
].join('');
//this func need to be called from _starRatingTemplate
vm.getRating = function(){
return 10;
}
function gridInitialized(gridApi) {
_gridApi = gridApi;
}
});
我们可以使用 "grid.appScope" 对象访问网格单元模板内的父范围。
如果您在父控制器中创建了 getRating 函数作为 $scope.getRating(){..} 那么您可以按如下方式访问它
rating-percentage="grid.appScope.getRating()"
如果您在控制器的 vm 对象中创建了 getRating 函数并按如下方式使用控制器
<div ng-controller="SelectToolController as SelectToolCtl">
....
</div>
然后简单使用
评分百分比="grid.appScope.SelectToolCtl.getRating()"
我正在发布我自己查询的答案。
cellTemplate 中的以下设置对我有用:
_starRatingTemplate = [
'<div class="opr-star-rating" >',
'<opr-star-rating rating-percentage="+vm.getRating()+">',
'</opr-star-rating>',
'</div>'
].join('');
我在 angularJs(1.6) 中有一个控制器正在使用 ui-grid。 问题是只有一个单元格模板。我想从函数中获取它的值。我尝试创建一个函数并尝试使用 grid.appScope.function 调用它。但它没有用。 我也尝试将我的功能与 vm 一起使用。但是没有用。
谁能帮我解决这个问题?
这是我的控制器代码:
(function () {
'use strict';
define([
'angular'
], function (angular) {
function SelectToolController($scope, $timeout, $filter, uiGridConstants) {
var vm = this,
_gridApi,
_cellTemplate,
_columnDefs,
_starRatingTemplate,
_starRatingColumn,
_starEnable;
};
_starRatingTemplate = [
'<div class="opr-star-rating" >',
'<opr-star-rating rating-percentage="getRating()">',
'</opr-star-rating>',
'</div>'
].join('');
//this func need to be called from _starRatingTemplate
vm.getRating = function(){
return 10;
}
function gridInitialized(gridApi) {
_gridApi = gridApi;
}
});
我们可以使用 "grid.appScope" 对象访问网格单元模板内的父范围。
如果您在父控制器中创建了 getRating 函数作为 $scope.getRating(){..} 那么您可以按如下方式访问它
rating-percentage="grid.appScope.getRating()"
如果您在控制器的 vm 对象中创建了 getRating 函数并按如下方式使用控制器
<div ng-controller="SelectToolController as SelectToolCtl">
....
</div>
然后简单使用 评分百分比="grid.appScope.SelectToolCtl.getRating()"
我正在发布我自己查询的答案。
cellTemplate 中的以下设置对我有用:
_starRatingTemplate = [
'<div class="opr-star-rating" >',
'<opr-star-rating rating-percentage="+vm.getRating()+">',
'</opr-star-rating>',
'</div>'
].join('');