javascript - $timeout 不是函数 angularjs

标签 javascript angularjs

我是 angular js 的初学者,我正在尝试使用超链接实现模态,我指的是这个 plunker

http://plnkr.co/edit/M7qfegYIOqOQekoxLaj5?p=preview

我已经能够在超链接上成功打开模式,但是我无法显示从函数返回的数据,它总是给出错误,$timeout 不是一个函数,我也从 ng- 传递了一个附加参数点击。

    <td ng-repeat="column in columns">
        <div class="animate-switch" ng-if="column == spaceIdHeaderName">
         <a href="" ng-click="open(user[column])"> {{user[column]}} </a></div>
         <div class="animate-switch" ng-if="column != spaceIdHeaderName">{{user[column]}}</div>

   </td>

我的 Modal js 是这样的:

$scope.open = function ($timeout, $log, parameter1) {

           var modalInstance = $uibModal.open({
                templateUrl: 'myModalContent.html',
                controller: ModalInstanceCtrl,
                resolve: {
                    items: function ($http) {
                        return "loadind data...";
                    }
                }
            });

            modalInstance.opened.then(function($timeout, $log) {
                $scope.loadData(modalInstance,$timeout, $log);
            }, function() {
                $log.info('Modal dismissed at: ' + new Date());
            });

            $scope.loadData = function(aModalInstance, $timeout, $log) {
                $timeout(function() {
                    aModalInstance.setItems("data loaded...");
                }, 3000);
            };

    };

        var ModalInstanceCtrl = function ($scope, $uibModalInstance, items) {
            $scope.items = items;

            $uibModalInstance.setItems = function(theData) {
                $scope.items = theData;
            };

            $scope.ok = function() {
                $uibModalInstance.close('close');
            };
            $scope.cancel = function() {
                $uibModalInstance.dismiss('cancel');
            };
        };
    });

无法弄清楚为什么 $timeout 没有解决,是否与参数传递有关?

最佳答案

您需要将 $timeout 作为依赖项包含在您的 Controller 中。

不仅$log和$http也需要包含

uibModal 中的这条语句:

    resolve: {
            items: function ($http) {
                return "loadind data...";
            }
        }

$scope.items = items 只会将字符串“loading data...”分配给它。我不知道您将此传递给 resolve 的原因。

关于javascript - $timeout 不是函数 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692741/

相关文章:

javascript - 区分字符串参数和引用字符串的变量

javascript - 定义多维数组

javascript - 如何使用 jQuery 查找变量中无效的未封闭 XML 标签?

javascript - 在 ng-repeat block 中无限调用函数

angularjs - Angular ui.grid 无限滚动不会被第二次调用 onwords

javascript - Angularjs 使用功能键作为快捷键

javascript - oncomplete ="PF(' dlg').hide() ;"causes "PF 找不到”错误

javascript - 单元测试 Angular + Browserify + Gulp 和 Jasmine

javascript - 动态更新 CSS

javascript - stub `window.location.reload` 用于单元测试 - "Some of your tests did a full page reload!"