我一直试图从ui-angular转变为angular-strap。我首先转向使用bs-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',但是在当前版本中没有看到???
所以我对如何将数据实际注入控制器毫无头绪。有人可以帮忙???谢谢!!!!
答案 0 :(得分:1)
我确定希望角带的文档更好!! - 然而抱怨并没有多大意义,因为我只使用这个而不是贡献者!
其他人试图让这个工作。我最后做的是调试角度带代码,我学会了:
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:就在我之前的内容中,但是带有预期的bootstrap完全模态对话框结构。我这样做是为了完全控制模板。
我也没有为上面的Promise注入烦恼,因为我并不真的需要它,我只是添加了它,因为我认为也许返回一个Promise会帮助它起作用。但它不需要。
我还有很多需要学习的东西,但至少现在我看到了我对模态的期望,我怀疑这将有助于其他人开始使用角带。我花了几个小时试图让它工作,并且从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;
}]);