我正在使用AngularJS v1.2.13创建一个带有表单的页面,该表单将在点击时下载用户的文件。
我正在使用$sce来启用文件网址注入工作正常。 但是,加载资源会禁用表单提交。我确定它与资源负载有关,因为当我删除负载并硬编码网址时它工作正常。我还创建了JSFiddle没有它,并且无法在那里重现问题。
关于为什么会发生这种情况以及如何解决问题的任何想法?
HTML:
<div ng-controller="viewProfileController" data-ng-init="findOne();">
<form method="get" action="{{downloadFileURL}}">
<button type="submit" class="no-button comment-small" >
Download File
</button>
</form>
</div>
控制器:
'use strict';
angular.module('bop.viewProfile').controller('viewProfileController', [
'$scope', 'Users', '$sce', '$routeParams',
function($scope, Users, $sce, $routeParams) {
$scope.downloadFileURL = '';
// Find current user
$scope.findOne = function() {
Users.get({
userId: $routeParams.userId
}, function(user) {
$scope.user = user;
$scope.downloadFileURL = $sce.trustAsResourceUrl($scope.user.file.url);
});
};
}]);
用户服务:
var userServices = angular.module('bop.users', ['ngResource']);
userServices.factory('Users', ['$resource', function($resource) {
return $resource(
'users/:userId',
{ userId: '@_id' },
{ update: { method: 'PUT' } }
);
}]);