我是 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/