#angularjs #angular-strap
#angularjs #angular-strap
Вопрос:
Я пытался перейти от ui-angular к angular-strap. Сначала я перешел на использование bs-tooltip вместо tooltip. Эта часть работает нормально. Затем я попытался изменить свои модальности, и здесь я застрял!!! Я пытался ввести свои данные в контроллер следующим образом:
var myModal = $modal({
templateContent: 'addTask.html',
controller: 'ModalInstanceCtrl2',
show: false,
resolve: {
function () {
return {
data: new Promise(function (resolve, reject) {
resolve({
task: newTask,
getStar: $scope.getStar,
setPriority: userCondition.setTaskPriority,
finish: function(arg) {
console.log(arg);
}
});
})
};
}
}
});
myModal.$promise.then(function() {
myModal.show();
});
где находится мой контроллер ModalInstanceContrl2
:
angular.module('...')
.controller('ModalInstanceCtrl2', ['$scope', '$modal', 'data',
function($scope, $modal, data) {
console.log(data);
$scope.ok = function () {
$modal.close();
};
$scope.cancel = function () {
$modal.dismiss('cancel');
};
$scope.data = data;
}]);
Тем не менее, независимо от того, как я, кажется, манипулирую этим «разрешением», я всегда вижу:
Error: [$injector:unpr] Unknown provider: dataProvider <- data <- ModalInstanceCtrl2
И единственная модель для этого, которую я понимаю, исходит от ui-angular. Итак, несмотря на то, что angular-strap, похоже, говорит о том, что проверил код для распознавания ‘resolve’, in не видит, чтобы он был в текущей версии???
Итак, я понятия не имею, как на самом деле вводить данные в контроллер. Может кто-нибудь помочь??? Спасибо!!!!
Ответ №1:
Я уверен, что хотелось бы, чтобы документы для angular-strap были лучше!! — Тем не менее, нет особого смысла жаловаться, поскольку я использую только это, а не участник!
Для других, пытающихся заставить это работать. Что я сделал в итоге, так это отладил код angular-strap, и я научился делать:
var myModal = $modal({
templateUrl: 'addTaskOld.html',
controller: 'ModalInstanceCtrl2',
show: false,
resolve: {
data: function () {
return {
task: newTask,
getStar: $scope.getStar,
setPriority: userCondition.setTaskPriority,
finish: function (arg) {
console.log(arg);
}
};
}
}
});
где мой templateUrl: — это именно то, что было в моем более раннем контенте, но с ожидаемой загрузочной полностью модальной диалоговой структурой. Я сделал это, чтобы получить полный контроль над шаблоном.
Я также не стал заморачиваться с внедрением обещания сверху, поскольку оно мне действительно не было нужно, я добавил его только потому, что подумал, что, возможно, возврат обещания поможет ему функционировать. Но это было не нужно.
Мне еще многому предстоит научиться, но, по крайней мере, теперь я вижу, чего я ожидаю в своем modal, и я подозреваю, что это поможет другим начать работать с angular-strap. Я потратил несколько часов, пытаясь заставить это работать, и это немного сложнее из ui-angular, поскольку стиль здесь ориентирован на атрибуты, а не на элементы.
Это должно быть прямо отсюда.
Спасибо тем, кто рассмотрел этот вопрос!
Обратите внимание, что мне также нужно было немного изменить modalInstanceCtrl2, поскольку я не вызывал правильные методы:
.controller('ModalInstanceCtrl2', ['$scope', '$modal', 'data',
function($scope, $modal, data) {
$scope.ok = function () {
data.finish(data);
$scope.$hide();
};
$scope.cancel = function () {
$scope.$hide();
};
$scope.data = data;
}]);