Как правильно редактировать/хранить данные Angular app'a?

Мой первый апп на angular. Я думаю, что так делать не стоит (массив с данными добавлять в основной апп файл), но все же:
Вопрос в том, можно ли редактировать "boardItems" (массив, заранее объявленный в app.js ) ? Так, что бы изменения отобразились в live preview, а сам массив получил новый итем?
app.js
(function() {
	
	var app = angular.module('done', [ ]);
	
	app.controller('BoardItemsController', function(){
		this.boardItems = [
			{
				'title': "Title",
				'body': "Body",
				'date': 'date'
			},
			{
				'title': "Title1",
				'body': "Body1",
				'date': 'date1'
			},
		];
	});

	app.controller('AddFormController', function(){
		this.item = {};
		
		this.addItem = function(board) { // Сюда передается доска для добавления 
			board.boardItems.push( this.item ); // записываю в доску итем из формы 
		};
	});
})();


index.html
<!--	BoardItemsController-->
	<section class="reminders" ng-controller='BoardItemsController as board'> 
// Доска, в которую я кидаю итемы, ниже передаю ее в для добавления

		<button class="add-btn" id="add-btn">
				<span class="btn-cover" >
					 <!-- removed svg -->
				</span>
		</button>
	
<!--	Single item -->
		<div class="item" ng-repeat='item in board.boardItems' >
		
			<div class="done">
				 <button >
				 	<!-- removed svg -->
				 </button>
			</div>
			
			<div class="item-title" >
				{{ item.title }}
			</div>
			
			<div class="item-descrtiption">
				{{ item.body }}
			</div>
			
			<div class="item-time">
				{{ item.date }}
			</div>
 
		
		</div>
		
<!--		Form for Item addition -->
			<form action="" id="add-form" ng-controller="AddFormController as addForm" ng-submit="addForm.addItem(board)"> // Добавляю созданный итем из контроллера формы в доску итемов

				<label for="rem-topic">Topic:</label>
				<input type="text" name="rem-topic" ng-model="addForm.item.title">

				<label for="rem-body">Description:</label>
				<textarea name="rem-body" id="" ng-model="addForm.item.body"></textarea>

				<input type="submit" class="form-btn" value="Send">
			</form>
		
	</section>

Суть в том, что итем нормально читается, при взове alert(), как прямо из формы, так и по номеру того массива, в который я хочу его добавить . Но на страницу он не добавляется и в объявленном массиве его тоже нету. "this.boardItems"

P.S.
Если стоит делать через JSON - выделите это в своем ответе, пожалуйста.
  • Вопрос задан
  • 733 просмотра
Решения вопроса 1
miraage
@miraage
Старый прогер
Контроллер - прослойка между интерфейсом и сервисами.
Практически все данные, бизнес-логика итд - должны лежать в соответствующих сервисах/фабриках/итд.

Когда приведете код в нужный вид - такие вопросы отпадут.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы