Ich bin AngularJs sehr neu und hoffe, ich kann hier Hilfe bekommen. Im Folgenden habe ich zwei Controller, die sehr ähnlich sind. Eine ist zum Bearbeiten eines Elements und eine zum Hinzufügen eines neuen Elements. Ich würde gerne wissen, wie ich diesen Code umgestalten kann, um den Großteil dieses Codes für beide Controller wiederzuverwenden oder einfach einen Controller für beide zu verwenden. Ich habe ursprünglich versucht, einen Controller für beide zu verwenden, aber die neue Artikelseite ließ mich nichts in die Felder eingeben. Ich nehme an, weil es keine aktuellen Modelldaten gab, wie es beim Editieren gibt.Wie teilt man angularjs Controller in Stücke?
Jede Hilfe wäre willkommen.
tplApp.controller('editController', function ($scope, $http, $routeParams){
$scope.template = {};
$scope.id = $routeParams.template_id;
$http.get(baseUrl+'templates/get_template/'+$scope.id).success(function(data) {
$scope.template = data;
});
$scope.bodyOptions = {
plugins: 'link image code',
toolbar: 'bold, italic, underline, alignleft, aligncenter, alignright, alignjustify, styleselect, bullist, numlist, outdent, indent, removeformat, mybutton, code',
height: 300,
menubar: false,
statusbar: false,
setup: function(editor) {
editor.addButton('mybutton', {
type: 'menubutton',
text: 'Variables',
icon: false,
menu: [
{text: 'Candidate Name', onclick: function() {editor.insertContent('%name%');}},
{text: 'Company Name', onclick: function() {editor.insertContent('%company-name%');}},
{text: 'Today\'s Date', onclick: function() {editor.insertContent('%date%');}},
{text: 'Your Name', onclick: function() {editor.insertContent('%your-name%');}},
]
});
}
};
$scope.saveTemplate = function() {
$http({
method : 'POST',
url : baseUrl+'templates/save',
data : $.param($scope.template),
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
$scope.message = data.message;
if (data.success) {
console.log(data);
$scope.templates = data.templates;
}
});
};
});
tplApp.controller('addController', function ($scope, $http){
$scope.template = {};
$scope.bodyOptions = {
plugins: 'link image code',
toolbar: 'bold, italic, underline, alignleft, aligncenter, alignright, alignjustify, styleselect, bullist, numlist, outdent, indent, removeformat, mybutton, code',
height: 300,
menubar: false,
statusbar: false,
setup: function(editor) {
editor.addButton('mybutton', {
type: 'menubutton',
text: 'Variables',
icon: false,
menu: [
{text: 'Candidate Name', onclick: function() {editor.insertContent('%name%');}},
{text: 'Company Name', onclick: function() {editor.insertContent('%company-name%');}},
{text: 'Today\'s Date', onclick: function() {editor.insertContent('%date%');}},
{text: 'Your Name', onclick: function() {editor.insertContent('%your-name%');}},
]
});
}
};
$scope.saveTemplate = function() {
$http({
method : 'POST',
url : baseUrl+'templates/save',
data : $.param($scope.template),
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
$scope.message = data.message;
if (data.success) {
console.log(data);
$scope.templates = data.templates;
}
});
};
});
Danke, aber ich habe bereits die Dokumentation überprüft sonst würde ich keine Frage stellen. Die Dokumentation ergibt für mich keinen Sinn. Ich bin mir nicht sicher, wie ich das Sample in das, was ich gerade mache, umwandeln oder wohin ich es bringen soll oder wie ich es nennen soll. Wie ich bereits erwähnt habe, bin ich Angulars sehr vertraut. – ThEwHiStLeR