一开始我会说我是角色的初学者,我学习它。我计划创建图库系统,用户可以在其中创建多个图库。 我正在使用指令http.get parital编译并为drop图像创建表单。对于一种形式工作不错,但当我添加更多形式我的函数执行多次时。我认为我的逻辑不好或者我做坏事。这是我的指示。
directive("contentControl",function($http,$compile){
return {
template: 'Click here',
link: function(scope, element, attrs) {
element.bind("click", function () {
$http.get("/js/angular/File/view/admin/FileUpload.html").then(function(resp) {
var html = resp.data;
var templateGoesHere = angular.element(document.getElementById('templateGoesHere'));
templateGoesHere.append(html);
$compile(templateGoesHere)(scope);
});
});
},
}
模板
<div ng-controller="FileController">
<button ng-click="upload(files)"></button>
<form name="myForm">
<div ngf-drop="add($files)" ng-model="files" class="drop-box clearfix"
ngf-drag-over-class="dragover" ngf-multiple="true">
<div ng-repeat="image in images">
<div class="col-sm-3">
<img ngf-thumbnail="!image.file.$error && image.file"
ngf-size="{width: 5024, height:200, quality: 0.9}"
class="img-responsive">
</div>
</div>
</div>
</form>
</div>
和控制器
.controller('FileController', function ($scope, Upload) {
$scope.files = [];
$scope.images = [];
$scope.add=function(files)
{
console.log(files);
}
$scope.upload = function (files) {
angular.forEach($scope.images,function(file)
{
});
//angular.forEach($scope.images,function(file)
//{
// console.log(file.file);
// Upload.upload({
// url: '/gallery/create',
// fields: {'name': file.file.name}, // additional data to send
// file: file.file
// });
//});
}
});
我在寻找孤立数据,或者有人可以解释我创建多重图库的更好逻辑
答案 0 :(得分:2)
这是正常的,因为每次使用该指令时都会生成一个新的http.get。
删除此指令,然后使用float64
&amp; ngInclude
在点击元素时包含您的模板。
ngIf
在控制器中
<a href="#" ng-click="showMyTemplate()">Click here</a>
<div ng-if="showTmp">
<div ng-include="template.html"/>
</div>