我是角度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未解决的原因,是否与参数传递相关?
答案 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”组件作为依赖项。请注意你 无法将“服务”或“值”组件注入配置。