У меня, похоже, проблема с созданием $ionicModal
при попытке указать мою область как this
вместо $scope
.
Поскольку я привязываю все в своем контроллере через имя экземпляра, я не использую $scope
внутри контроллера.
Итак, я начинаю модальный, как указано здесь, в Ionic Framework doc и переключился $scope
с this
$ionicModal.fromTemplateUrl('my-modal.html', {
scope: this,
animation: 'slide-in-up'
}).then(function(modal) {
this.modal = modal;
});
При запуске приложения, я получаю следующее сообщение об ошибке:
undefined is not a function
и ссылается на следующий код в ionic.bundle.js:
var createModal = function(templateString, options) {
// Create a new scope for the modal
var scope = options.scope && options.scope.$new() || $rootScope.$new(true);
Я даже попытался назначить другую переменную для представления this
и запустить ее таким образом, но та же ошибка превалирует!
Если я не использую $scope
в моем контроллере, какой бы лучший способ загрузить модальный код, поддерживая использование this
? Это просто невозможно, или я чего-то не хватает?
Edit- В соответствии с просьбой, добавив больше информации к оригиналу,
Шаблон:
<div id="wrapper" ng-controller="MainCtrl as ctrl">
<button ng-click="ctrl.demo()">Demo Button</button>
</div>
Контроллер:
angular.module('MyDemo', ['ionic'])
.controller('MainCtrl', function ($ionicModal) {
var _this = this;
this.demo = function() {
//do demo related stuff here
}
$ionicModal.fromTemplateUrl('my-modal.html', {
scope: _this,
animation: 'slide-in-up'
}).then(function(modal) {
_this.modal = modal;
});
});
Так, в принципе, я используя 1-й де- Декларации в стиле здесь: https://docs.angularjs.org/api/ng/directive/ngController
EDIT: Изменены this
к _this
внутри $ionicModal
В соответствии с просьбой, вот plunker с указанным кодом: http://plnkr.co/edit/4GbulCDgoj4iZtmAg6v3?p=info
Я не уверен, что вы подразумеваете под «Поскольку я связыванием все в моем контроллере через имя экземпляра», вы можете показать нам больше ваш код контроллера или даже лучше, образец plunker где ошибок имеет место? – JoseM
Добавлена дополнительная информация к оригиналу. Я думаю, вопрос в том, может ли это использовать вместо $ scope при настройке модального. – spez86
Вы пытались присвоить 'this' самому себе?Например, 'var self = this;' затем используйте 'scope: self' – JoseM