У меня очень мало опыта работы с javascript. Мне нужно добавить меню по щелчку элемента. Нам было предложено создать его с нуля без использования какой-либо библиотеки, например, компонент bootstrap или JQuery.Создание элементов динамически в угловом
Мы используем Angularjs. В угловой я хочу знать правильный метод создания новых элементов. Что-то вроде того, что мы не сделали document.createElement
.
Я добавляю некоторые из кода для вас, ребята, чтобы лучше понять, что я хочу делать.
Директива Меню
.directive('menu', ["$location","menuData", function factory(location, menuData) {
return {
templateUrl: "partials/menu.html",
controller: function ($scope, $location, $document) {
$scope.init = function (menu) {
console.log("init() called");
console.log("$document: " + $document);
if (menu.selected) {
$scope.tabSelected(menu);
}
}
$scope.creteMenu = function(menuContent){
//This is to be called when the action is an array.
}
$scope.tabSelected = function(menu){
$location.url(menu.action);
$scope.selected = menu;
}
$scope.click = function (menu) {
if (typeof (menu.action) == 'string') {
$scope.tabSelected(menu);
}
}
},
link: function (scope, element, attrs) {
scope.menuData = menuData;
}
};
}])
Меню данных в службе.
.value('menuData', [{ label: 'Process-IDC', action: [] }, { label: 'Dash Board', action: '/dashboard', selected: true }, { label: 'All Jobs', action: '/alljobs', selected: false }, { label: 'My Jobs', action: '/myjobs', selected: false }, { label: 'Admin', action: '/admin', selected: false }, { label: 'Reports', action: '/reports', selected: false }]);
Если вы заметили действие меню Process-МЦД массив будет содержать больше меню с действиями в нем, и он должен быть открыт в подменю.
menu.html (частичные)
<ul class="menu">
<li ng-class="{activeMenu: menu==selected}" ng-init="init(menu)" data-ng-click="click(menu)" data-ng-repeat="menu in menuData">{{menu.label}}</li>
</ul>
взгляд на это http://docs.angularjs.org/api/ng.directive:ngShow С помощью этого метода, вы на самом деле не создать элемент, но только показать его, когда это необходимо –
Лучше попробовать понять, как угловые работы. Как работает его шаблонный двигатель. Как вещи - это драйвер модели, а не пользовательский интерфейс. Посмотрите на такие вещи, как 'ng-repeat',' ng-include', чтобы понять, как генерируется динамический контент. – Chandermani
угловой очень мощный ... но без опыта работы с javascript, особенно для понимания объектов и области видимости, он не очень подходит для начинающих javascript. – charlietfl