Я создаю приложение с AngularJS и Slim PHP framework для бэкэнд, теперь я закончил свою первую форму и создал маршрут к шаблону для нее. Теперь моя проблема возникает, когда я хочу передать свои данные другому контроллеру, мне нужно передать данные другому контроллеру + представлению (шаблону), я не хочу загрязнять свое первое представление ни его контроллером, и поэтому я действительно хочу/нужно передать данные другому контроллеру, который я мог бы играть с моими данными и другой формой (вторая форма предназначена для расчета и других вещей) ... Таким образом, вы можете вызвать первый контроллер для предварительного сохранения, тогда как реальное сохранение данных (backend to DB) произойдет только во втором шаблоне контроллера +. Вот короткий моего 1-го зрения шаблона, который имеет вид:От AngularJS как передавать данные с контроллера + шаблон другому контроллеру + шаблон?
<form novalidate id="formAdd" name="formAdd" class="form-horizontal well col-md-7 col-md-pull-5" method="post">
<fieldset>
<legend>Transaction form</legend>
<div class="form-group">
<label for="symbol" class="col-sm-4 control-label">Symbol</label>
<div class="col-sm-5 symbols">
<input type="text" name="symbol" class="form-control" ng-model="trsn.symbol" placeholder="symbol" required />
</div>
</div>
<div class="form-group">
<label for="accnt_id" class="col-sm-4 control-label">Account</label>
<div class="col-sm-5">
<select id="accnt_id" name="accnt_id" ng-model="trsn.accnt_id" class="form-control" required>
<option value="">...</option>
<option ng-repeat="account in trsn.accounts" value="{{account.accnt_id}}">{{account.accnt_name}}</option>
</select>
</div>
</div>
<!-- ....etc, etc.... -->
<div class="form-actions col-sm-8 col-sm-offset-4">
<button type="submit" name="save_btn" class="btn btn-primary" ng-disabled="formAdd.$invalid" ng-click="preSaveTrsn(trsn, formAdd)">Save transaction</button>
<button type="reset" class="btn btn-default">Cancel</button>
</div>
</fieldset>
</form>
то приложение с модулем и маршрутов:
var investingApp = angular.module('investingApp', ['ngSanitize','ngResource', 'ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/new-trsn',
{
templateUrl: 'templates/StockTransaction.html',
controller: 'StockTransactionController'
});
$routeProvider.when('/presave-trsn',
{
templateUrl: 'templates/PreSaveTransaction.html',
controller: 'PreSaveTrsnController'
});
});
Теперь внутри моего первого контроллера является функцией presave, который пуст так как я не знаю, что делать с ним, так что я могу отправить данные о транзакции на следующий контроллер + зрения:
investingApp.controller('StockTransactionController',
function TransactionController($scope, $http, $location, $compile, $timeout, transactionDataService, dateFilter) {
// define some default variables
$scope.trsn = {};
$scope.trsn.symbol = "";
...
$scope.preSaveTrsn = function(trsn, formAdd) {
// what to put in here to transfer data to next controller????
};
, а затем мой последний контроллер, у меня тоже ничего там еще, так как я могу» t recei какие-либо данные .... но в основном то, что я хочу ввести, - это данные транзакции (trsn), которые поступают от 1-го типа/контроллера.
investingApp.controller('PreSaveTrsnController',
function MenuController($scope, $http, trsn) {
console.debug(trsn);
});
ли я поставить что-то внутри routeProvider
каким-то образом? ... или мне нужно заполнить что-то особенное внутри функции preSaveTrsn
внутри моего 1-го контроллера ??? Я очень смущен этим, потому что все примеры, которые я нахожу, предназначены для сохранения сразу в базе данных, но я не могу этого сделать, как я создаю свое приложение, это действительно должно быть на втором контроллере по нескольким причинам, t думаю, что я должен объяснить здесь .... Спасибо за любую помощь, оказанную :)
Спасибо за оба ответа, здесь немного сложно найти победителя, так как я нахожу оба ответа действительными, так как я потратил время на то, чтобы попробовать оба, и поэтому я должен обогнать вас обоих :) Я отвечу на ответ Андрея простота, но Chandermani также будет хорошо, если мне нужно будет делать манипуляции с данными до перехода к следующему контроллеру, что также интересно. Так что спасибо снова !!! – ghiscoding