Angularjs 为什么解析在角带中的功能不如我预期的那样?
我一直在尝试从ui角度转换到角度带。我首先转向使用bs工具提示,而不是工具提示。这部分工作正常。接下来,我试图改变我的情态动词,我被卡住了!!!我一直在尝试将我的数据注入控制器,如下所示:Angularjs 为什么解析在角带中的功能不如我预期的那样?,angularjs,angular-strap,Angularjs,Angular Strap,我一直在尝试从ui角度转换到角度带。我首先转向使用bs工具提示,而不是工具提示。这部分工作正常。接下来,我试图改变我的情态动词,我被卡住了!!!我一直在尝试将我的数据注入控制器,如下所示: var myModal = $modal({ templateContent: 'addTask.html', controller: 'ModalInstanceCtrl2', show: false, resolve: { function () { return {
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();
});
其中,我的控制器是:
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
错误:[$injector:unpr]未知提供程序:数据提供程序我真希望Angle 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:与我之前的内容相同,但具有预期的引导完全模态对话框结构。我这样做是为了完全控制模板
我也没有为上面的承诺注入而烦恼,因为我并不真的需要它,我只是添加了它,因为我认为返回一个承诺可能会帮助它工作。但这是不必要的
我仍然有很多东西要学,但至少现在我看到了我在模态中的期望,我怀疑这将有助于其他开始使用角带的人。我花了几个小时试图让它正常工作,但从ui角度来看有点困难,因为这里的样式是面向属性的,而不是面向元素的
它应该从这里一直向前走
感谢那些看了这个问题的人
注意:我还需要稍微更改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;
}]);