$ timeout不是一个函数angularjs

时间:2016-06-08 03:30:21

标签: javascript angularjs

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

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

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

ENV_NAME

我的模态js如下:

    <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>

无法弄清楚$ timeout未解决的原因,是否与参数传递相关?

3 个答案:

答案 0 :(得分:2)

您需要在控制器中包含$ timeout作为依赖项。

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

你的uibModal中的这句话:

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

$ scope.items = items只会为其分配字符串“loading data ...”。我不知道你要解决的原因。

答案 1 :(得分:2)

您需要在控制器中注入$ timeount,$ http和$ log

angular.module('plunker', ['ui.bootstrap']);
var testCtrl = function($scope, $modal, $timeout, $log,$http) {
$scope.open = function() {
var modalInstance = $modal.open({
  templateUrl: 'testContent.html',
  controller: testCtrl,
  resolve: {
    mydata: function() {
      return "Loading...";
    }
  }
});

答案 2 :(得分:0)

您在其他答案中找到了解决方案。现在,您需要查看Dependency Injection的不同方法。

  

DI在整个Angular中都很普遍。您可以在定义时使用它   组件或为模块提供运行和配置块时。

     

服务,指令,过滤器和动画等组件   由可注入的工厂方法或构造函数定义。这些   组件可以注入“service”和“value”组件   的依赖关系。

     

控制器由构造函数定义,可以是   注入任何“服务”和“值”组件   依赖项,但它们也可以提供特殊的依赖项。   请参阅下面的控制器以获取这些特殊依赖项的列表。

     

run方法接受一个可以注入的函数   “服务”,“值”和“常量”组件作为依赖项。注意   你不能将“提供者”注入运行块。

     

config方法接受一个可以注入的函数   “provider”和“constant”组件作为依赖项。请注意你   无法将“服务”或“值”组件注入配置。