我已经开始在电子学习交付平台上工作,并且我们选择了Angularjs(1.2.29,因为我们在IE8上仍然有用户)。我们的团队对Angular来说都是相对较新的,我们不确定提供系统的最佳做法是什么。在Angular 1.2.29中获取DOM操作控制器1.2.29
目标是建立一个非常基于组件的结构,设计人员可以简单地编辑json文件,在需要时添加命名组件。在幕后,每个组件都应该有自己的html模板,js功能文件和css。
到目前为止,我们有一个工作系统,其中包括“段落”和“图像”组件。下一步是添加一个具有一些交互功能的“弹出”组件。
我已经看到形成的问题是我们将组件功能添加到我们的app.js文件中的'pageController',我怀疑这是一个非常糟糕的主意,至少因为如果我们不断添加每个组件功能,该文件将变得庞大而笨拙。下面是app.js中的PageController,迄今:
app.controller('pageCtrl', ['$scope', '$routeParams', '$http', 'content', function($scope, $routeParams, $http, content) {
$http.get('json/page' + $routeParams.pageId + '.json')
.success(function(data) {
$scope.page = data;
});
$scope.getStyle = function(singleCase, device) {
if (singleCase == undefined)
return '';
return assignBootstrap(singleCase, device);
}
// function for new, interactive 'popup' component
$scope.showPopup = function (showOnClick) {
// presentation logic located here. This is a bad idea, right?
if ($('#'+showOnClick).hasClass('overlay')) {
$('#page_container').append($('#'+showOnClick));
}
$('#' + $('#' + showOnClick).attr('data-replaces')).remove();
$('.popup').addClass("hidden");
$('#'+showOnClick).removeClass("hidden");
}
$scope.pageId = $routeParams.pageId;
}]);
我已阅读并观看了很多的教程,以及角度网站页面,而是理解如何让我们的项目的具体要求与角的工作证明困难。
此页...... https://code.angularjs.org/1.2.29/docs/guide/controller
......告诉我,DOM操作代码应在指令封装(无论是定制还是内置的,我认为)。
鉴于我们想要结束与每个必需组件关联的小型.js文件,我们是否应该重构设计以使用自定义元素(restrict:“E”)指令来封装功能?
我遇到的信息是基于概念和抽象的,很难知道概念应该如何最好地应用到工作项目中。
这是一个很好的使用'元素限制'指令(有效定制html标签)来封装我们各个组件的代码吗?我可以想象得到定义我们需要的组件的自定义html标签列表。这甚至是什么元素指令?
谢谢。