Я преобразовал один из моих угловых контроллеров в контроллер как синтаксис, но у меня возникли проблемы с получением шаблона ng-grid для игры.
Контроллер имеет функцию под названием редактирования пользователем, который выглядит как этот
self.editUser = function (user_data) {
var modalInstance = $modal.open({
templateUrl: '/admin/views/adminuser.html',
controller: 'AdminUserController',
resolve: {
user_data: function() {
return user_data;
}
}
});
modalInstance.result.then(function() {
self.myQueryData.refresh = !self.myQueryData.refresh;
});
};
шаблон нг-сетка выглядит следующим образом
<div class="ngCellText" ng-class="col.colIndex()">
<a ng-click="$parent.$parent.$parent.$parent.editUser({user_id:row.entity.id, first_name:row.entity.first_name, last_name:row.entity.last_name, email:row.entity.email})">
<span ng-cell-text translate>Edit</span>
</a>
</div>
и мой маршрут выглядит следующим образом
.when('/admin/settings', {
templateUrl: '/admin/views/settings.html',
controller: 'SettingsController as sc',
})
Так что проблема в шаблоне, когда я звоню
$parent.$parent.$parent.$parent.editUser
он не знает, что я имею в виду, если я не включать имя контроллера, как
$parent.$parent.$parent.$parent.sc.editUser,
то он прекрасно работает. Однако я не хочу привязывать этот шаблон непосредственно к контроллеру sc. Как я могу вызвать editUser без использования имени контроллера?
Я надеялся, что там будет функция на $ родителю, которая будет поставлять имя функции как
$parent.$parent.$parent.$parent.getController().editUser
Любые предложения?
Я должен добавить, я знаю, что я могу получить эту работу добавив функцию в scop e, я не хочу этого делать. – ryanmc
Хм ... это много «$ parent». [Аналогичная проблема ngGrid] (http://stackoverflow.com/a/23698748/639753) – Xeon