首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在angular-strap中resolve不能像我预期的那样工作?

为什么在angular-strap中resolve不能像我预期的那样工作?
EN

Stack Overflow用户
提问于 2016-10-19 07:33:21
回答 1查看 47关注 0票数 1

我一直在尝试从ui-angular转换到angular-strap。我首先转到使用bs-tooltip,而不是工具提示。这部分运行得很好。接下来,我尝试转换我的情态动词,但我被卡住了!我一直在尝试将我的数据注入控制器,如下所示:

代码语言:javascript
复制
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是:

代码语言:javascript
复制
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;

   }]);

然而,无论我似乎如何操纵这种“决心”,我总是看到:

代码语言:javascript
复制
Error: [$injector:unpr] Unknown provider: dataProvider <- data <- ModalInstanceCtrl2

据我所知,唯一的模型来自ui-angular。因此,尽管angular-strap似乎谈到了签入代码以识别“resolve”,但在当前版本中看不到?

所以我对如何向控制器注入数据一无所知。有人能帮帮忙吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-10-19 08:03:56

我当然希望angular-strap的文档更好!!--然而抱怨没有太大的意义,因为我只是在使用它,而不是贡献者!

对于其他试图让它工作的人。我最后做的是调试angular-strap代码,我学会了这样做:

代码语言:javascript
复制
  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);
          }
        };
      }
    }
  });

where my templateUrl:是我之前内容中的内容,但是使用了预期的引导全模式对话框结构。我这样做是为了获得对模板的完全控制。

我也没有为上面的Promise注入而烦恼,因为我并不真的需要它,我只是添加了它,因为我认为返回一个Promise可能会帮助它运行。但这并不是必需的。

我仍然有很多东西需要学习,但至少现在我看到了我对我的模式的期望,我怀疑这会帮助其他开始使用angular-strap的人。我花了几个小时试图让它正常工作,而从ui-angular开始就有点困难了,因为这里的样式是面向属性的,而不是面向元素的。

它应该是直接从这里开始的。

感谢那些关注这个问题的人!

注意,我还需要稍微更改modalInstanceCtrl2,因为我没有调用正确的方法:

代码语言:javascript
复制
.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;

}]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40119726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档