AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
AngularJS - Close tile and load new view from model in ngRepeat directive AngularJS
我有个问题。我在浏览器中创建了一个3个互动程序,当我关闭互动程序时,它必须消失,并在其中显示新的互动程序。
所以在右上角我有一个十字架,它必须关闭瓷砖。
当我点击第一个磁贴时,关闭的磁贴向右移动,新的磁贴出现在这个地方,而旧的磁贴(这是我应用程序中的一个大错误),点击其他磁贴什么都不做。
现在,我在浏览器代码和控制台中进行了去bug处理,有很好的数据(在函数关闭tile中),但angular做了一些错误的事情,或者可能是我。所以在这个函数中,当我关闭tile时,我将其从对象列表中删除,并在这个位置向新tile添加新属性(从restSlide)。
这是我的指示:
dModule.directive('activeMetro', ['$compile', '$http', '$templateCache', function ($compile, $http, $templateCache) {
var getTemplate = function (contentType) {
var templateLoader,
baseUrl = 'partials/tiles/',
templateMap = {
Club: 'club.html',
Festival: 'festival.html',
Theater: 'theater.html',
Audition: 'tv.html',
Seance: 'cinema.html',
Sport: 'sport.html'
};
var templateUrl = baseUrl + templateMap[contentType];
templateLoader = $http.get(templateUrl, { cache: $templateCache });
return templateLoader;
};
var linker = function (scope, element, attrs) {
var loader = getTemplate(scope.content.Type);
var promise = loader.success(function (html) {
element.html(html);
}).then(function (response) {
element.replaceWith($compile(element.html())(scope));
});
};
return {
restrict: 'E',
transclude: 'true',
scope: {
content: '=content',
globalFoo: '=globalFoo',
additional: '=additional',
},
controller: ['$scope', '$element', '$attrs', '$transclude', '$rootScope', function ($scope, $element, $attrs, $transclude, $rootScope) {
$scope.removeFromSlide = function (id) {
if ($rootScope.additional.length > 1) {
var slides = $rootScope.content;
var restSlide = $rootScope.additional;
var numSlide = $rootScope.slideNumber;
var onSlide = $rootScope.activitiesOnSlideNumber;
for (var i = 0; i < numSlide; i++) {
for (var j = 0; j < onSlide; j++) {
if (slides[i][j].Id == id) {
slides[i].splice(j, 1, restSlide[0]);
console.log(restSlide[0]);
restSlide.splice(0, 1);
}
}
}
$rootScope.content = slides;
$rootScope.additional = restSlide;
}
};
}],
link: linker
}; }]);
removeFromSlide是关闭我的互动程序的函数。
现在我有一个页面result.html:
<div class="switch-tile-wrapper">
<div class="switch-tile" id="switch-tile">
<active-metro ng-repeat="item in content[0]" content="item" global-foo="globalFoo" additional="additional"></active-metro>
</div> </div>
代码包含所有类型的瓦片(这是从区分瓦片类型的指令加载的模板)。所有类型的瓦片中都有相同的代码,即
<div class="tile yellow-tile" id ="{{content.Id}}">
<div class="activity-type">
<span ng-click="removeFromSlide(content.Id)">X</span>
{{content.Type}}{{content.Id}}
</div>
<h4>{{content.Title}}</h4>
<div class="activity-info">
<p>G: {{content.G}}</p>
<p>R: {{content.R}}</p>
<p>Y: {{content.P}}</p>
<p>K : {{content.Pr}}</p>
</div>
<div class="activity-description">
<p>{{content.Description}}</p>
</div>
</div>
我正在等待帮助:)
修复此错误:
指令中链接器:
var linker = function (scope, element, attrs) {
var loader = getTemplate(scope.content.Type);
loader.success(function (html) {
element.html(html);
$compile(element.contents())(scope);
});
相关文章:
- 如何将本地json数据加载到Extjs数据模型中
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- ThreeJS访问加载的obj模型中的对象
- Sails.js:我可以将一些服务/模型打包为npm并在Sails.jss应用程序中加载npm吗
- 如何在three.js中加载指定文件内容而非路径的三维模型
- 如何加载一次模型并将其存储到变量中
- 加载 .dae 模型时不显示纹理
- Webgl 加载 json 模型问题
- 延迟 AngularJS 路由更改,直到加载模型以防止闪烁
- 如何在打开模型时动态加载控制器文件
- 加载模型与三个.js
- 三.js:如何从Web-worker加载动画.json模型
- 如何在角度 2 中向动态加载的子组件提供父组件的模型
- EmberJS:如何在同一条路径上加载多个模型
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- 在Ember.js中渲染应用程序之前,正在等待模型加载
- 使用Ajax从数据库/模型加载数据
- 当我把模型加载到three.js中时,我怎样才能提高性能呢?
- Kendo UI下拉菜单从模型加载数据