我在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;
}
});
答案 0 :(得分:1)
我们可以使用“ grid.appScope”对象访问网格单元模板内的父范围。
如果在父控制器中将getRating函数创建为$ scope.getRating(){..},则可以按以下方式访问它
rating-percentage="grid.appScope.getRating()"
如果您在控制器的vm对象中创建了getRating函数,并按照以下说明使用了控制器
<div ng-controller="SelectToolController as SelectToolCtl">
....
</div>
然后简单使用 rating-percentage =“ grid.appScope.SelectToolCtl.getRating()”
答案 1 :(得分:0)
我正在发布自己查询的答案。
cellTemplate中的以下设置对我有用:
_starRatingTemplate = [
'<div class="opr-star-rating" >',
'<opr-star-rating rating-percentage="+vm.getRating()+">',
'</opr-star-rating>',
'</div>'
].join('');