どのようにアクセスしますか$scope
UIグリッドセルテンプレートから?コントローラコードは次のとおりです。
app.controller('MainCtrl', ['$scope', function ($scope) {
// i want to reference this from a cell template.
$scope.world = function() { return 'world'; };
$scope.gridOptions = {
data: [
{ id: "item1" },
{ id: "item2" }
],
columnDefs: [
{
field: 'id',
// world() is never called and is not displayed.
cellTemplate: '<div>{{ "hello " + world() }}</div>'
}]
};
}]);
こちらで実際にご覧ください: http://plnkr.co/edit/WYXeQShHWKDYDs4MIZnP?p=preview
セルの内容には「hello world」と表示されるはずですが、「hello」と表示されるだけです。
http://ui-grid.info/docs/#/tutorial/305_appScope によると、グリッドには独自のisalotedスコープがあるため、grid.appScope
を使用してアプリケーションスコープにアクセスする必要があります。 。解決策は、セルテンプレートを次のように変更することです。
cellTemplate: '<div>{{ "hello " + grid.appScope.world() }}</div>'